MVP
This commit is contained in:
parent
6938e212ba
commit
62f343ef90
40 changed files with 2171 additions and 149 deletions
11
README.md
11
README.md
|
@ -1,3 +1,12 @@
|
||||||
# cabinet
|
# vitrine
|
||||||
|
|
||||||
A Pure CSS Hugo theme for portfolio websites
|
A Pure CSS Hugo theme for portfolio websites
|
||||||
|
|
||||||
|
- [x] Scroll snap behaviour on home
|
||||||
|
- [ ] Button for switching between projects
|
||||||
|
- [x] Header with CV + Portfolio
|
||||||
|
- [x] Single Site with just Markdown
|
||||||
|
- [x] Project summary with picture title tags and a more button
|
||||||
|
- [x] Highlight and Button color
|
||||||
|
- [ ] Switch between light and dark in config
|
||||||
|
|
||||||
|
|
31
assets/build/images.sh
Executable file
31
assets/build/images.sh
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Libary needed: ImageMagick
|
||||||
|
|
||||||
|
PARAMS=('-quality 60')
|
||||||
|
|
||||||
|
if [ $# -ne 0 ]; then
|
||||||
|
PARAMS=$@;
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd $(pwd)
|
||||||
|
|
||||||
|
shopt -s nullglob nocaseglob extglob
|
||||||
|
shopt -s globstar
|
||||||
|
|
||||||
|
# Resize
|
||||||
|
sizes=(320 640 960 1280)
|
||||||
|
for FILE in public/**/*.@(jpg|jpeg|tif|tiff|png|gif); do
|
||||||
|
DIR=$(dirname "$FILE")
|
||||||
|
NAME=$(basename "$FILE" | cut -d. -f1)
|
||||||
|
EXTENSION=$(basename "$FILE" | cut -d. -f2)
|
||||||
|
for size in ${sizes[@]}; do
|
||||||
|
convert "$FILE" -resize ${size}x${size}\> "${DIR}/${NAME}-${size}.${EXTENSION}"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
# Web Optimized Formats
|
||||||
|
for FILE in public/**/*.@(jpg|jpeg|tif|tiff|png|gif); do
|
||||||
|
convert $PARAMS "$FILE" "${FILE}".webp;
|
||||||
|
convert $PARAMS "$FILE" "${FILE}".avif;
|
||||||
|
done
|
|
@ -1,22 +0,0 @@
|
||||||
body {
|
|
||||||
color: #222;
|
|
||||||
font-family: sans-serif;
|
|
||||||
line-height: 1.5;
|
|
||||||
margin: 1rem;
|
|
||||||
max-width: 768px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
border-bottom: 1px solid #222;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
border-top: 1px solid #222;
|
|
||||||
margin-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #00e;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
BIN
assets/images/avatar.jpg
Normal file
BIN
assets/images/avatar.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 372 KiB |
BIN
assets/images/portfolio.png
Normal file
BIN
assets/images/portfolio.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 567 KiB |
|
@ -1 +0,0 @@
|
||||||
console.log('This site was generated by Hugo.');
|
|
564
assets/scss/main.scss
Normal file
564
assets/scss/main.scss
Normal file
|
@ -0,0 +1,564 @@
|
||||||
|
$font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
||||||
|
$width: 960px;
|
||||||
|
|
||||||
|
:root {
|
||||||
|
color-scheme: dark;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
background-color: #231D1D;
|
||||||
|
color: #F5F5F5;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-break: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
|
||||||
|
header, footer {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
font-family: $font;
|
||||||
|
font-weight: lighter;
|
||||||
|
font-style: normal;
|
||||||
|
font-size: larger;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin: 0rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
//margin: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: {{ .Site.Params.color.secondary }};
|
||||||
|
}
|
||||||
|
|
||||||
|
{{ if .Site.Params.list.icon }}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
list-style: none;
|
||||||
|
padding-left: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li:before {
|
||||||
|
content: url({{ .Site.Params.list.icon }});
|
||||||
|
display: inline-block;
|
||||||
|
width: 21px;
|
||||||
|
height: 21px;
|
||||||
|
margin-right: 10px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
.col-3 {flex: 25%; width: 25%; max-width: 25%;}
|
||||||
|
.col-4 {flex: 33.33%; width: 33.33%; max-width: 33.33%;}
|
||||||
|
.col-5 {flex: 41.66%; width: 41.66%; max-width: 41.66%;}
|
||||||
|
.col-6 {flex: 50%; width: 50%; max-width: 50%;}
|
||||||
|
.col-7 {flex: 58.33%; width: 58.33%; max-width: 58.33%;}
|
||||||
|
.col-8 {flex: 66.66%; width: 66.66%; max-width: 66.66%;}
|
||||||
|
.col-9 {flex: 75%; width: 75%; max-width: 75%;}
|
||||||
|
.col-10 {flex: 83.33%; width: 83.33%; max-width: 83.33%;}
|
||||||
|
.col-11 {flex: 91.66%; width: 91.66%; max-width: 91.66%;}
|
||||||
|
.col-12 {flex: 100%; width: 100%; max-width: 100%;}
|
||||||
|
|
||||||
|
[class*="col-"] {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rotate-45 {-webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); -o-transform: rotate(45deg); transform: rotate(45deg);}
|
||||||
|
.rotate-90 {-webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -ms-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg);}
|
||||||
|
.rotate-180 { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); -ms-transform: rotate(180deg); -o-transform: rotate(180deg); transform: rotate(180deg);}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-flow: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header */
|
||||||
|
|
||||||
|
header {
|
||||||
|
height: 80px;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 9;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: center;
|
||||||
|
text-align: end;
|
||||||
|
background-color: inherit;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
max-width: 960px;
|
||||||
|
padding-inline: 1rem;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: x-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.items {
|
||||||
|
display: flex;
|
||||||
|
flex-grow: 1;
|
||||||
|
justify-content: right;
|
||||||
|
|
||||||
|
.item {
|
||||||
|
align-self: center;
|
||||||
|
padding-inline-end: 16px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
background: {{ .Site.Params.color.primary }};
|
||||||
|
height: 5px;
|
||||||
|
width: 0%;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
z-index: 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-indicator {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
bottom: 0;
|
||||||
|
padding: 2rem;
|
||||||
|
font-size: x-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.totop {
|
||||||
|
display: inline-flex;
|
||||||
|
background-color: {{ .Site.Params.color.primary }};
|
||||||
|
color: #f2f2f2;
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin: 20px;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0px;
|
||||||
|
right: 0px;
|
||||||
|
transition: background-color .3s;
|
||||||
|
z-index: 10;
|
||||||
|
visibility: hidden;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.totop:hover {
|
||||||
|
filter: brightness(60%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.totop.show {
|
||||||
|
visibility: visible;
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Sections */
|
||||||
|
|
||||||
|
.scroller {
|
||||||
|
height: calc(100vh - 80px);
|
||||||
|
overflow-y: scroll;
|
||||||
|
scroll-snap-type: y mandatory;
|
||||||
|
|
||||||
|
section {
|
||||||
|
min-height: 100%;
|
||||||
|
scroll-snap-align: start;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.profile {
|
||||||
|
.content {
|
||||||
|
margin: auto;
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin-block-end: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
padding: 2rem;
|
||||||
|
|
||||||
|
i {
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
padding-inline: 6px;
|
||||||
|
color: {{ .Site.Params.color.secondary }};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 100%;
|
||||||
|
max-width: 1152px;
|
||||||
|
margin: auto;
|
||||||
|
padding: 1rem;
|
||||||
|
align-items: stretch;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
display: flex;
|
||||||
|
flex: min-content;
|
||||||
|
justify-content: center;
|
||||||
|
max-width: 580px;
|
||||||
|
max-height: 400px;
|
||||||
|
min-width: 300px;
|
||||||
|
|
||||||
|
picture {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1 1 0%;
|
||||||
|
//flex: content;
|
||||||
|
min-width: 300px;
|
||||||
|
max-width: 800px;
|
||||||
|
margin-inline: auto;
|
||||||
|
padding: 1rem;
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
flex-grow: 1;
|
||||||
|
color: {{ .Site.Params.color.primary }};
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tags {
|
||||||
|
|
||||||
|
.tag + .tag::before {
|
||||||
|
content: " - "
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.more {
|
||||||
|
display: flex;
|
||||||
|
justify-content: end;
|
||||||
|
padding: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article {
|
||||||
|
|
||||||
|
.card {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 1rem;
|
||||||
|
margin-block-end: 4rem;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image {
|
||||||
|
width: 100%;
|
||||||
|
max-width: 480px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.placeholder {
|
||||||
|
height: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: min-content;
|
||||||
|
min-width: 300px;
|
||||||
|
padding: 1rem;
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-of-contents {
|
||||||
|
position: fixed;
|
||||||
|
left: 0px;
|
||||||
|
top: 0px;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
|
||||||
|
.extend {
|
||||||
|
margin: auto;
|
||||||
|
padding-block: 1rem;
|
||||||
|
padding-inline: 0.4rem;
|
||||||
|
border-radius: 0rem 0.5rem 0.5rem 0rem;
|
||||||
|
background-color: black;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#TableOfContents {
|
||||||
|
display: none;
|
||||||
|
margin: auto;
|
||||||
|
padding-inline: 20px;
|
||||||
|
border-radius: 0rem 0.5rem 0.5rem 0rem;
|
||||||
|
background-color: black;
|
||||||
|
font-size: larger;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
counter-reset:toc1;
|
||||||
|
list-style-type:none;
|
||||||
|
padding-inline-start: 0rem;
|
||||||
|
padding-block: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
list-style-type:none;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
counter-reset:toc2;
|
||||||
|
|
||||||
|
li {
|
||||||
|
list-style-type:none;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
counter-reset:toc3;
|
||||||
|
|
||||||
|
li:before {
|
||||||
|
counter-increment:toc3;
|
||||||
|
content:counter(toc1) "." counter(toc2) "." counter(toc3) " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li:before {
|
||||||
|
counter-increment:toc2;
|
||||||
|
content:counter(toc1) "." counter(toc2) " ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li:before {
|
||||||
|
counter-increment:toc1;
|
||||||
|
content:counter(toc1) ". ";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#TableOfContents.show {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
main {
|
||||||
|
flex-grow: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title h1 {
|
||||||
|
color: {{ .Site.Params.color.primary }};
|
||||||
|
font-size: xxx-large;
|
||||||
|
margin-block-end: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
main > .content {
|
||||||
|
padding-top: 9rem;
|
||||||
|
padding-bottom: 2rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
max-width: $width;
|
||||||
|
margin: 0;
|
||||||
|
align-self: center;
|
||||||
|
flex-grow: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list {
|
||||||
|
margin-block-start: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list > li {
|
||||||
|
list-style: none;
|
||||||
|
margin: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list > article {
|
||||||
|
margin: 0.5rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
border: 2px solid gray;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list > article > h3 {
|
||||||
|
margin: 0px;
|
||||||
|
padding-block: 0.25rem;
|
||||||
|
font-size: x-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list > article > .meta {
|
||||||
|
font-size: smaller;
|
||||||
|
padding-block-end: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.meta > span {
|
||||||
|
padding-inline-end: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list > article > .more {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
text-align: right;
|
||||||
|
font-size: x-large;
|
||||||
|
border: none;
|
||||||
|
background: inherit;
|
||||||
|
color: {{ .Site.Params.color.secondary }};
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
padding-top: 2rem;
|
||||||
|
padding-bottom: 2.5rem;
|
||||||
|
padding-right: 1.5rem;
|
||||||
|
padding-left: 1.5rem;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
align-self: center;
|
||||||
|
flex: 1 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section.even {
|
||||||
|
// background-color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section.highlight {
|
||||||
|
background-color: {{ .Site.Params.color.primary }};
|
||||||
|
}
|
||||||
|
|
||||||
|
.section > .content {
|
||||||
|
width: 100%;
|
||||||
|
max-width: $width;
|
||||||
|
margin: auto;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Buttons */
|
||||||
|
/* TODO: test */
|
||||||
|
.button {
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: 100%;
|
||||||
|
line-height: inherit;
|
||||||
|
color: inherit;
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: none;
|
||||||
|
text-transform: none;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button:hover {
|
||||||
|
filter: brightness(60%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.filled {
|
||||||
|
background-color: {{ .Site.Params.color.secondary }};
|
||||||
|
color: white;
|
||||||
|
border: 2px solid {{ .Site.Params.color.secondary }};
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0.5rem 1.5rem;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.outlined {
|
||||||
|
background-color: transparent;
|
||||||
|
color: {{ .Site.Params.color.secondary }};
|
||||||
|
border: 2px solid {{ .Site.Params.color.secondary }};
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 0.5rem 1.5rem;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button.outlined:hover {
|
||||||
|
background-color: {{ .Site.Params.color.secondary }};
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Images */
|
||||||
|
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
width: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: auto;
|
||||||
|
object-fit: contain;
|
||||||
|
vertical-aligh: middle;
|
||||||
|
border-radius: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.avatar {
|
||||||
|
border-radius: 50%;
|
||||||
|
border: 3px solid {{ .Site.Params.color.primary }};
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
text-align: center;
|
||||||
|
color: gray;
|
||||||
|
font-size: small;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
|
@ -1,9 +1,14 @@
|
||||||
+++
|
---
|
||||||
title = 'Home'
|
title: Hi, I'm Melissa
|
||||||
date = 2023-01-01T08:00:00-07:00
|
image:
|
||||||
draft = false
|
url: images/avatar.jpg
|
||||||
+++
|
alt: Avatar
|
||||||
|
social:
|
||||||
Laborum voluptate pariatur ex culpa magna nostrud est incididunt fugiat
|
- type: linkedin
|
||||||
pariatur do dolor ipsum enim. Consequat tempor do dolor eu. Non id id anim anim
|
rel: nofollow
|
||||||
excepteur excepteur pariatur nostrud qui irure ullamco.
|
url: https://www.linkedin.com/in/melissa-sarria/
|
||||||
|
- type: at
|
||||||
|
url: mailto:melissa.andrea94@hotmail.es
|
||||||
|
weight: 1
|
||||||
|
---
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At.
|
||||||
|
|
22
content/cv/index.md
Normal file
22
content/cv/index.md
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
---
|
||||||
|
title: CV
|
||||||
|
nav: true
|
||||||
|
---
|
||||||
|
|
||||||
|
## Beruflicher Werdegang
|
||||||
|
|
||||||
|
2023 Wissenchafliche Hilskraft (Neurobiopsychologie) Universität Osnabrück / Osnabrück
|
||||||
|
|
||||||
|
2023 Wissenchafliche Hilskraft (Vergleichende Kognitionsbiologie) Universität Osnabrück / Osnabrück
|
||||||
|
|
||||||
|
2020 - 2021 Forschungspraktikantin LobVR / Osnabrück
|
||||||
|
|
||||||
|
## Aus- und Weiterbildungen
|
||||||
|
|
||||||
|
2024 Certified User Experience Designer XDi- Experience Design Institut
|
||||||
|
|
||||||
|
2023 Digital Product Design: UX Research & UI Design Udemy
|
||||||
|
|
||||||
|
2019-2022 M.sc. Cognitive Science Universität Osnabrück / Osnabrück Schwerpunkte: Kognitive Psychologie und Computerlinguitik Thesenthema: A graph approach for the identification of exploratory and exploitative navigational strategies in a Virtual Reality city exploration. Ausgezeichnet mit dem Förderpreis der Universität Osnabrück 2022/2023 gestiftet durch die ROSEN Gruppe
|
||||||
|
|
||||||
|
2013- 2017 Studium zur Psychologin Pontificia Universidad Javeriana / Bogotá, Kolumbien
|
|
@ -1,7 +1,5 @@
|
||||||
+++
|
---
|
||||||
title = 'Posts'
|
title: Blog
|
||||||
date = 2023-01-01T08:30:00-07:00
|
draft: true
|
||||||
draft = false
|
nav: true
|
||||||
+++
|
---
|
||||||
|
|
||||||
Tempor est exercitation ad qui pariatur quis adipisicing aliquip nisi ea consequat ipsum occaecat. Nostrud consequat ullamco laboris fugiat esse esse adipisicing velit laborum ipsum incididunt ut enim. Dolor pariatur nulla quis fugiat dolore excepteur. Aliquip ad quis aliqua enim do consequat.
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
+++
|
|
||||||
title = 'Post 1'
|
|
||||||
date = 2023-01-15T09:00:00-07:00
|
|
||||||
draft = false
|
|
||||||
tags = ['red']
|
|
||||||
+++
|
|
||||||
|
|
||||||
Tempor proident minim aliquip reprehenderit dolor et ad anim Lorem duis sint eiusmod. Labore ut ea duis dolor. Incididunt consectetur proident qui occaecat incididunt do nisi Lorem. Tempor do laborum elit laboris excepteur eiusmod do. Eiusmod nisi excepteur ut amet pariatur adipisicing Lorem.
|
|
||||||
|
|
||||||
Occaecat nulla excepteur dolore excepteur duis eiusmod ullamco officia anim in voluptate ea occaecat officia. Cillum sint esse velit ea officia minim fugiat. Elit ea esse id aliquip pariatur cupidatat id duis minim incididunt ea ea. Anim ut duis sunt nisi. Culpa cillum sit voluptate voluptate eiusmod dolor. Enim nisi Lorem ipsum irure est excepteur voluptate eu in enim nisi. Nostrud ipsum Lorem anim sint labore consequat do.
|
|
|
@ -1,10 +0,0 @@
|
||||||
+++
|
|
||||||
title = 'Post 2'
|
|
||||||
date = 2023-02-15T10:00:00-07:00
|
|
||||||
draft = false
|
|
||||||
tags = ['red','green']
|
|
||||||
+++
|
|
||||||
|
|
||||||
Anim eiusmod irure incididunt sint cupidatat. Incididunt irure irure irure nisi ipsum do ut quis fugiat consectetur proident cupidatat incididunt cillum. Dolore voluptate occaecat qui mollit laborum ullamco et. Ipsum laboris officia anim laboris culpa eiusmod ex magna ex cupidatat anim ipsum aute. Mollit aliquip occaecat qui sunt velit ut cupidatat reprehenderit enim sunt laborum. Velit veniam in officia nulla adipisicing ut duis officia.
|
|
||||||
|
|
||||||
Exercitation voluptate irure in irure tempor mollit Lorem nostrud ad officia. Velit id fugiat occaecat do tempor. Sit officia Lorem aliquip eu deserunt consectetur. Aute proident deserunt in nulla aliquip dolore ipsum Lorem ut cupidatat consectetur sit sint laborum. Esse cupidatat sit sint sunt tempor exercitation deserunt. Labore dolor duis laborum est do nisi ut veniam dolor et nostrud nostrud.
|
|
Binary file not shown.
Before Width: | Height: | Size: 19 KiB |
|
@ -1,12 +0,0 @@
|
||||||
+++
|
|
||||||
title = 'Post 3'
|
|
||||||
date = 2023-03-15T11:00:00-07:00
|
|
||||||
draft = false
|
|
||||||
tags = ['red','green','blue']
|
|
||||||
+++
|
|
||||||
|
|
||||||
Occaecat aliqua consequat laborum ut ex aute aliqua culpa quis irure esse magna dolore quis. Proident fugiat labore eu laboris officia Lorem enim. Ipsum occaecat cillum ut tempor id sint aliqua incididunt nisi incididunt reprehenderit. Voluptate ad minim sint est aute aliquip esse occaecat tempor officia qui sunt. Aute ex ipsum id ut in est velit est laborum incididunt. Aliqua qui id do esse sunt eiusmod id deserunt eu nostrud aute sit ipsum. Deserunt esse cillum Lorem non magna adipisicing mollit amet consequat.
|
|
||||||
|
|
||||||
![Bryce Canyon National Park](bryce-canyon.jpg)
|
|
||||||
|
|
||||||
Sit excepteur do velit veniam mollit in nostrud laboris incididunt ea. Amet eu cillum ut reprehenderit culpa aliquip labore laborum amet sit sit duis. Laborum id proident nostrud dolore laborum reprehenderit quis mollit nulla amet veniam officia id id. Aliquip in deserunt qui magna duis qui pariatur officia sunt deserunt.
|
|
27
content/projects/project2.md
Normal file
27
content/projects/project2.md
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
---
|
||||||
|
title: Project 2
|
||||||
|
date: 2024-06-01
|
||||||
|
tags: [Product Strategy]
|
||||||
|
overview: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre.
|
||||||
|
image:
|
||||||
|
url: images/portfolio.png
|
||||||
|
alt: Portfolio
|
||||||
|
---
|
||||||
|
|
||||||
|
# Heading 1
|
||||||
|
[Google](https://google.com) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari.
|
||||||
|
|
||||||
|
## Heading 2
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est.
|
||||||
|
|
||||||
|
### Heading 3
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est autem situm in nobis ut et voluptates et dolores nasci fatemur e corporis voluptatibus et doloribus -- itaque concedo, quod modo dicebas, cadere causa.
|
||||||
|
|
||||||
|
#### Heading 4
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est autem situm in nobis.
|
||||||
|
|
||||||
|
##### Heading 5
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est autem situm in nobis ut et voluptates et dolores nasci fatemur e corporis voluptatibus et doloribus -- itaque.
|
||||||
|
|
||||||
|
###### Heading 6
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita.
|
12
content/projects/smartberg.md
Normal file
12
content/projects/smartberg.md
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
---
|
||||||
|
title: Design of a responsive website for a German city
|
||||||
|
date: 2024-03-31
|
||||||
|
tags: [UX Research, Web Design, Product Strategy]
|
||||||
|
overview: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis, ut e patre.
|
||||||
|
---
|
||||||
|
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si.
|
||||||
|
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est autem situm in nobis ut et voluptates et.
|
||||||
|
|
||||||
|
Ullus investigandi veri, nisi inveneris, et quaerendi defatigatio turpis est, cum esset accusata et vituperata ab Hortensio. Qui liber cum et mortem contemnit, qua qui est imbutus quietus esse numquam potest. Praeterea bona praeterita grata recordatione renovata delectant. Est autem situm in nobis ut et voluptates et dolores nasci fatemur e corporis voluptatibus et doloribus -- itaque.
|
23
hugo.toml
23
hugo.toml
|
@ -1,23 +0,0 @@
|
||||||
baseURL = 'https://example.org/'
|
|
||||||
languageCode = 'en-us'
|
|
||||||
title = 'My New Hugo Site'
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Home'
|
|
||||||
pageRef = '/'
|
|
||||||
weight = 10
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Posts'
|
|
||||||
pageRef = '/posts'
|
|
||||||
weight = 20
|
|
||||||
|
|
||||||
[[menus.main]]
|
|
||||||
name = 'Tags'
|
|
||||||
pageRef = '/tags'
|
|
||||||
weight = 30
|
|
||||||
|
|
||||||
[module]
|
|
||||||
[module.hugoVersion]
|
|
||||||
extended = false
|
|
||||||
min = "0.116.0"
|
|
11
hugo.yaml
Normal file
11
hugo.yaml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
baseURL: http://example.com/
|
||||||
|
languageCode: en-us
|
||||||
|
title: UX Portfolio
|
||||||
|
|
||||||
|
enableEmoji: true
|
||||||
|
enableRobotsTXT: true
|
||||||
|
|
||||||
|
params:
|
||||||
|
color:
|
||||||
|
primary: "#04BFAD"
|
||||||
|
secondary: "#CB9148"
|
3
layouts/_default/_markup/render-image.html
Normal file
3
layouts/_default/_markup/render-image.html
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{{ $img := .Page.Resources.GetMatch .Destination }}
|
||||||
|
|
||||||
|
{{ partial "components/image.html" (dict "img" $img "destination" .Destination "alt" .Text "caption" .Title) }}
|
|
@ -1,7 +1,60 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ .Content }}
|
<div class="scroller">
|
||||||
{{ range site.RegularPages }}
|
<section>
|
||||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
<div class="profile card">
|
||||||
{{ .Summary }}
|
{{ if .Params.image }}
|
||||||
|
<div class="image">
|
||||||
|
{{ partial "components/image.html" .Params.image }}
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
<div class="image placeholder"></div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
<div class="content">
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
{{ .Content }}
|
||||||
|
{{ if .Params.social }}
|
||||||
|
<div class="social">
|
||||||
|
{{ range .Params.social }}
|
||||||
|
{{ partial "components/icon.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="scroll-indicator">
|
||||||
|
<a href="#">
|
||||||
|
<i class="icon-angle-down"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ range where .Site.RegularPages "Section" "projects"}}
|
||||||
|
<section>
|
||||||
|
<div class="card">
|
||||||
|
{{ if .Params.image }}
|
||||||
|
<div class="image">
|
||||||
|
{{ partial "components/image.html" .Params.image }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
<div class="content">
|
||||||
|
<div class="tags">
|
||||||
|
{{ range .Params.tags }}
|
||||||
|
<a class="tag" href="{{ "tags" | absURL }}/{{ . | urlize }}/">{{ . }}</a>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
<h1><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h1>
|
||||||
|
<div class="more">
|
||||||
|
<a class="button filled" href="{{ .RelPermalink }}">
|
||||||
|
View Case
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="scroll-indicator">
|
||||||
|
<a href="#">
|
||||||
|
<i class="icon-angle-down"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,8 +1,11 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
|
<article class="content">
|
||||||
|
<div class="title">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
|
</div>
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
{{ .Render "summary" }}
|
||||||
{{ .Summary }}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
</article>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
|
<article class="content">
|
||||||
|
<div class="title">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if .Date }}
|
||||||
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
|
{{ $dateMachine := .Date | time.Format "2006-01-02T15:04:05-07:00" }}
|
||||||
{{ $dateHuman := .Date | time.Format ":date_long" }}
|
{{ $dateHuman := .Date | time.Format ":date_long" }}
|
||||||
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time>
|
<time datetime="{{ $dateMachine }}">{{ $dateHuman }}</time>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
</article>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
4
layouts/_default/summary.html
Normal file
4
layouts/_default/summary.html
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<article>
|
||||||
|
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||||
|
{{ .Summary }}
|
||||||
|
</article>
|
13
layouts/partials/components/button.html
Normal file
13
layouts/partials/components/button.html
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
<!--
|
||||||
|
type: string - default filled
|
||||||
|
text: string
|
||||||
|
icon: string (optional)
|
||||||
|
url: string
|
||||||
|
-->
|
||||||
|
{{ $outlined := "outlined"}}
|
||||||
|
<a class="{{if eq .type $outlined}} button-outlined {{else}} button-filled {{end}}" href="{{ .url }}">
|
||||||
|
{{ with .icon }}
|
||||||
|
<i class="icon-{{ . }}"></i>
|
||||||
|
{{ end }}
|
||||||
|
{{ .text }}
|
||||||
|
</a>
|
9
layouts/partials/components/icon.html
Normal file
9
layouts/partials/components/icon.html
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<!--
|
||||||
|
type: string - default: link
|
||||||
|
text: string (optional)
|
||||||
|
url: string
|
||||||
|
-->
|
||||||
|
<a href="{{ .url }}" rel="{{ .rel }}">
|
||||||
|
<i class="{{ if .type }} icon-{{ .type }} {{ else }} icon-link {{ end }}"></i>
|
||||||
|
{{ if .text }} {{ .text }}{{ end }}
|
||||||
|
</a>
|
56
layouts/partials/components/image.html
Normal file
56
layouts/partials/components/image.html
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
<!--
|
||||||
|
type: string - default empty
|
||||||
|
img: image
|
||||||
|
url: string
|
||||||
|
alt: string
|
||||||
|
caption: string
|
||||||
|
-->
|
||||||
|
{{ $img := .img }}
|
||||||
|
{{ if not $img }}
|
||||||
|
{{ $img = resources.Get .url }}
|
||||||
|
{{ if not $img }}
|
||||||
|
{{ $img := resources.GetRemote .url | resources.Copy (path.Join "images" (path.Base .url )) }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $img }}
|
||||||
|
{{ $url := $img.RelPermalink }}
|
||||||
|
{{ $width := $img.Width }}
|
||||||
|
{{ $height := $img.Height }}
|
||||||
|
{{ $sizes := slice "320" "640" "960" "1280" }}
|
||||||
|
{{ $ext := path.Ext $url }}
|
||||||
|
{{ $name := path.Base (replace $url $ext "") }}
|
||||||
|
{{ $dir := path.Dir $url }}
|
||||||
|
{{ $mediaWidthControl := "(min-width: 1240px) 50px, 70vw" }}
|
||||||
|
|
||||||
|
<picture>
|
||||||
|
{{- if eq hugo.Environment "development" }}
|
||||||
|
<img class="{{ .type }}" width="{{ $width }}" height="{{ $height }}" src="{{ $url }}" alt="{{ .alt }}" loading="lazy"
|
||||||
|
decoding="async">
|
||||||
|
{{ else }}
|
||||||
|
<source type="image/avif" srcset="
|
||||||
|
{{ range $i, $size := $sizes }}
|
||||||
|
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }}.avif {{ $size }}w,
|
||||||
|
{{ end }}
|
||||||
|
{{ $url }}.avif {{ $width }}w
|
||||||
|
" sizes="{{ $mediaWidthControl }}" />
|
||||||
|
<source type="image/webp" srcset="
|
||||||
|
{{ range $i, $size := $sizes }}
|
||||||
|
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }}.webp {{ $size }}w,
|
||||||
|
{{ end }}
|
||||||
|
{{ $url }}.webp {{ $width }}w
|
||||||
|
" sizes="{{ $mediaWidthControl }}" />
|
||||||
|
<img class="{{ .type }}" width="{{ $width }}" height="{{ $height }}" srcset="
|
||||||
|
{{ range $i, $size := $sizes }}
|
||||||
|
{{ $dir }}/{{ $name }}-{{ $size }}{{ $ext }} {{ $size }}w,
|
||||||
|
{{ end }}
|
||||||
|
{{ $url }} {{ $width }}w
|
||||||
|
" src="{{ $url }}" alt="{{ .alt }}" loading="lazy" decoding="async">
|
||||||
|
{{ end }}
|
||||||
|
</picture>
|
||||||
|
{{ if .caption }}
|
||||||
|
<p class="caption">{{ .caption }}</p>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{/* https://www.brycewray.com/posts/2023/05/better-code-image-processing-hugo-render-hook-edition/ */}}
|
|
@ -1 +0,0 @@
|
||||||
<p>Copyright {{ now.Year }}. All rights reserved.</p>
|
|
|
@ -1,5 +1,7 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<title>{{ if .IsHome }}{{ site.Title }}{{ else }}{{ printf "%s | %s" .Title site.Title }}{{ end }}</title>
|
<meta name="color-scheme" content="dark">
|
||||||
|
{{ template "_internal/opengraph.html" . }}
|
||||||
|
<title>{{ if .Title }}{{ .Title }}{{ else }}{{ .Site.Title }}{{ end }}</title>
|
||||||
{{ partialCached "head/css.html" . }}
|
{{ partialCached "head/css.html" . }}
|
||||||
{{ partialCached "head/js.html" . }}
|
{{ partialCached "head/js.html" . }}
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
{{- with resources.Get "css/main.css" }}
|
{{- with resources.Get "scss/main.scss" | resources.ExecuteAsTemplate "css/main.css" . | resources.ToCSS (dict "outputStyle" "compressed") | minify | fingerprint }}
|
||||||
{{- if eq hugo.Environment "development" }}
|
|
||||||
<link rel="stylesheet" href="{{ .RelPermalink }}">
|
|
||||||
{{- else }}
|
|
||||||
{{- with . | minify | fingerprint }}
|
|
||||||
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
<link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
<link rel="stylesheet" type="text/css" href="/icons/fontawesome.css">
|
||||||
|
|
|
@ -1,2 +1,6 @@
|
||||||
<h1>{{ site.Title }}</h1>
|
<h2><a href="/">{{ .Site.Title }}</a></h2>
|
||||||
{{ partial "menu.html" (dict "menuID" "main" "page" .) }}
|
{{ range .Site.Pages }}
|
||||||
|
{{ if .Params.nav }}
|
||||||
|
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
{{- /*
|
|
||||||
For a given taxonomy, renders a list of terms assigned to the page.
|
|
||||||
|
|
||||||
@context {page} page The current page.
|
|
||||||
@context {string} taxonomy The taxonony.
|
|
||||||
|
|
||||||
@example: {{ partial "terms.html" (dict "taxonomy" "tags" "page" .) }}
|
|
||||||
*/}}
|
|
||||||
|
|
||||||
{{- $page := .page }}
|
|
||||||
{{- $taxonomy := .taxonomy }}
|
|
||||||
|
|
||||||
{{- with $page.GetTerms $taxonomy }}
|
|
||||||
{{- $label := (index . 0).Parent.LinkTitle }}
|
|
||||||
<div>
|
|
||||||
<div>{{ $label }}:</div>
|
|
||||||
<ul>
|
|
||||||
{{- range . }}
|
|
||||||
<li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
|
|
||||||
{{- end }}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{{- end }}
|
|
19
layouts/projects/single.html
Normal file
19
layouts/projects/single.html
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
{{ define "main" }}
|
||||||
|
<article class="content">
|
||||||
|
<div class="title">
|
||||||
|
<h1>{{ .Title }}</h1>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
{{ if .Params.image }}
|
||||||
|
<div class="image">
|
||||||
|
{{ partial "components/image.html" .Params.image }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
<div class="content">
|
||||||
|
<h1>Project Overview</h1>
|
||||||
|
<p>{{ .Params.overview }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ .Content }}
|
||||||
|
</article>
|
||||||
|
{{ end }}
|
8
layouts/projects/summary.html
Normal file
8
layouts/projects/summary.html
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<article>
|
||||||
|
<h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
|
||||||
|
{{ if .Params.overview }}
|
||||||
|
{{ .Params.overview }}
|
||||||
|
{{ else }}
|
||||||
|
{{ .Summary }}
|
||||||
|
{{ end }}
|
||||||
|
</article>
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
957
static/icons/fontawesome.css
vendored
Normal file
957
static/icons/fontawesome.css
vendored
Normal file
|
@ -0,0 +1,957 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'fontawesome';
|
||||||
|
src: url('fontawesome.eot?80pvic');
|
||||||
|
src: url('fontawesome.eot?80pvic#iefix') format('embedded-opentype'),
|
||||||
|
url('fontawesome.ttf?80pvic') format('truetype'),
|
||||||
|
url('fontawesome.woff?80pvic') format('woff'),
|
||||||
|
url('fontawesome.svg?80pvic#icomoon') format('svg');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
font-display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
[class^="icon-"], [class*=" icon-"] {
|
||||||
|
/* use !important to prevent issues with browser extensions that change fonts */
|
||||||
|
font-family: 'fontawesome' !important;
|
||||||
|
speak: never;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
font-variant: normal;
|
||||||
|
text-transform: none;
|
||||||
|
line-height: 1;
|
||||||
|
|
||||||
|
/* Better Font Rendering =========== */
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
-moz-osx-font-smoothing: grayscale;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-store-alt-slash:before {
|
||||||
|
content: "\e070";
|
||||||
|
}
|
||||||
|
.icon-store-slash:before {
|
||||||
|
content: "\e071";
|
||||||
|
}
|
||||||
|
.icon-glass-martini:before {
|
||||||
|
content: "\f000";
|
||||||
|
}
|
||||||
|
.icon-music:before {
|
||||||
|
content: "\f001";
|
||||||
|
}
|
||||||
|
.icon-search:before {
|
||||||
|
content: "\f002";
|
||||||
|
}
|
||||||
|
.icon-heart:before {
|
||||||
|
content: "\f004";
|
||||||
|
}
|
||||||
|
.icon-star:before {
|
||||||
|
content: "\f005";
|
||||||
|
}
|
||||||
|
.icon-user:before {
|
||||||
|
content: "\f007";
|
||||||
|
}
|
||||||
|
.icon-film:before {
|
||||||
|
content: "\f008";
|
||||||
|
}
|
||||||
|
.icon-th-large:before {
|
||||||
|
content: "\f009";
|
||||||
|
}
|
||||||
|
.icon-th:before {
|
||||||
|
content: "\f00a";
|
||||||
|
}
|
||||||
|
.icon-th-list:before {
|
||||||
|
content: "\f00b";
|
||||||
|
}
|
||||||
|
.icon-check:before {
|
||||||
|
content: "\f00c";
|
||||||
|
}
|
||||||
|
.icon-times:before {
|
||||||
|
content: "\f00d";
|
||||||
|
}
|
||||||
|
.icon-search-plus:before {
|
||||||
|
content: "\f00e";
|
||||||
|
}
|
||||||
|
.icon-search-minus:before {
|
||||||
|
content: "\f010";
|
||||||
|
}
|
||||||
|
.icon-power-off:before {
|
||||||
|
content: "\f011";
|
||||||
|
}
|
||||||
|
.icon-signal:before {
|
||||||
|
content: "\f012";
|
||||||
|
}
|
||||||
|
.icon-cog:before {
|
||||||
|
content: "\f013";
|
||||||
|
}
|
||||||
|
.icon-home:before {
|
||||||
|
content: "\f015";
|
||||||
|
}
|
||||||
|
.icon-clock:before {
|
||||||
|
content: "\f017";
|
||||||
|
}
|
||||||
|
.icon-road:before {
|
||||||
|
content: "\f018";
|
||||||
|
}
|
||||||
|
.icon-download:before {
|
||||||
|
content: "\f019";
|
||||||
|
}
|
||||||
|
.icon-inbox:before {
|
||||||
|
content: "\f01c";
|
||||||
|
}
|
||||||
|
.icon-redo:before {
|
||||||
|
content: "\f01e";
|
||||||
|
}
|
||||||
|
.icon-sync:before {
|
||||||
|
content: "\f021";
|
||||||
|
}
|
||||||
|
.icon-list-alt:before {
|
||||||
|
content: "\f022";
|
||||||
|
}
|
||||||
|
.icon-lock:before {
|
||||||
|
content: "\f023";
|
||||||
|
}
|
||||||
|
.icon-flag:before {
|
||||||
|
content: "\f024";
|
||||||
|
}
|
||||||
|
.icon-headphones:before {
|
||||||
|
content: "\f025";
|
||||||
|
}
|
||||||
|
.icon-volume-off:before {
|
||||||
|
content: "\f026";
|
||||||
|
}
|
||||||
|
.icon-volume-down:before {
|
||||||
|
content: "\f027";
|
||||||
|
}
|
||||||
|
.icon-volume-up:before {
|
||||||
|
content: "\f028";
|
||||||
|
}
|
||||||
|
.icon-qrcode:before {
|
||||||
|
content: "\f029";
|
||||||
|
}
|
||||||
|
.icon-barcode:before {
|
||||||
|
content: "\f02a";
|
||||||
|
}
|
||||||
|
.icon-tag:before {
|
||||||
|
content: "\f02b";
|
||||||
|
}
|
||||||
|
.icon-tags:before {
|
||||||
|
content: "\f02c";
|
||||||
|
}
|
||||||
|
.icon-book:before {
|
||||||
|
content: "\f02d";
|
||||||
|
}
|
||||||
|
.icon-bookmark:before {
|
||||||
|
content: "\f02e";
|
||||||
|
}
|
||||||
|
.icon-print:before {
|
||||||
|
content: "\f02f";
|
||||||
|
}
|
||||||
|
.icon-camera:before {
|
||||||
|
content: "\f030";
|
||||||
|
}
|
||||||
|
.icon-video:before {
|
||||||
|
content: "\f03d";
|
||||||
|
}
|
||||||
|
.icon-image:before {
|
||||||
|
content: "\f03e";
|
||||||
|
}
|
||||||
|
.icon-map-marker:before {
|
||||||
|
content: "\f041";
|
||||||
|
}
|
||||||
|
.icon-adjust:before {
|
||||||
|
content: "\f042";
|
||||||
|
}
|
||||||
|
.icon-tint:before {
|
||||||
|
content: "\f043";
|
||||||
|
}
|
||||||
|
.icon-edit:before {
|
||||||
|
content: "\f044";
|
||||||
|
}
|
||||||
|
.icon-plus-circle:before {
|
||||||
|
content: "\f055";
|
||||||
|
}
|
||||||
|
.icon-minus-circle:before {
|
||||||
|
content: "\f056";
|
||||||
|
}
|
||||||
|
.icon-times-circle:before {
|
||||||
|
content: "\f057";
|
||||||
|
}
|
||||||
|
.icon-check-circle:before {
|
||||||
|
content: "\f058";
|
||||||
|
}
|
||||||
|
.icon-arrow-left:before {
|
||||||
|
content: "\f060";
|
||||||
|
}
|
||||||
|
.icon-arrow-right:before {
|
||||||
|
content: "\f061";
|
||||||
|
}
|
||||||
|
.icon-arrow-up:before {
|
||||||
|
content: "\f062";
|
||||||
|
}
|
||||||
|
.icon-arrow-down:before {
|
||||||
|
content: "\f063";
|
||||||
|
}
|
||||||
|
.icon-share:before {
|
||||||
|
content: "\f064";
|
||||||
|
}
|
||||||
|
.icon-expand:before {
|
||||||
|
content: "\f065";
|
||||||
|
}
|
||||||
|
.icon-compress:before {
|
||||||
|
content: "\f066";
|
||||||
|
}
|
||||||
|
.icon-plus:before {
|
||||||
|
content: "\f067";
|
||||||
|
}
|
||||||
|
.icon-minus:before {
|
||||||
|
content: "\f068";
|
||||||
|
}
|
||||||
|
.icon-asterisk:before {
|
||||||
|
content: "\f069";
|
||||||
|
}
|
||||||
|
.icon-exclamation-circle:before {
|
||||||
|
content: "\f06a";
|
||||||
|
}
|
||||||
|
.icon-gift:before {
|
||||||
|
content: "\f06b";
|
||||||
|
}
|
||||||
|
.icon-leaf:before {
|
||||||
|
content: "\f06c";
|
||||||
|
}
|
||||||
|
.icon-eye:before {
|
||||||
|
content: "\f06e";
|
||||||
|
}
|
||||||
|
.icon-eye-slash:before {
|
||||||
|
content: "\f070";
|
||||||
|
}
|
||||||
|
.icon-exclamation-triangle:before {
|
||||||
|
content: "\f071";
|
||||||
|
}
|
||||||
|
.icon-calendar-alt:before {
|
||||||
|
content: "\f073";
|
||||||
|
}
|
||||||
|
.icon-retweet:before {
|
||||||
|
content: "\f079";
|
||||||
|
}
|
||||||
|
.icon-shopping-cart:before {
|
||||||
|
content: "\f07a";
|
||||||
|
}
|
||||||
|
.icon-folder:before {
|
||||||
|
content: "\f07b";
|
||||||
|
}
|
||||||
|
.icon-folder-open:before {
|
||||||
|
content: "\f07c";
|
||||||
|
}
|
||||||
|
.icon-chart-bar:before {
|
||||||
|
content: "\f080";
|
||||||
|
}
|
||||||
|
.icon-credit-card:before {
|
||||||
|
content: "\f09d";
|
||||||
|
}
|
||||||
|
.icon-rss:before {
|
||||||
|
content: "\f09e";
|
||||||
|
}
|
||||||
|
.icon-bullhorn:before {
|
||||||
|
content: "\f0a1";
|
||||||
|
}
|
||||||
|
.icon-arrow-circle-left:before {
|
||||||
|
content: "\f0a8";
|
||||||
|
}
|
||||||
|
.icon-arrow-circle-right:before {
|
||||||
|
content: "\f0a9";
|
||||||
|
}
|
||||||
|
.icon-arrow-circle-up:before {
|
||||||
|
content: "\f0aa";
|
||||||
|
}
|
||||||
|
.icon-arrow-circle-down:before {
|
||||||
|
content: "\f0ab";
|
||||||
|
}
|
||||||
|
.icon-globe:before {
|
||||||
|
content: "\f0ac";
|
||||||
|
}
|
||||||
|
.icon-wrench:before {
|
||||||
|
content: "\f0ad";
|
||||||
|
}
|
||||||
|
.icon-tasks:before {
|
||||||
|
content: "\f0ae";
|
||||||
|
}
|
||||||
|
.icon-filter:before {
|
||||||
|
content: "\f0b0";
|
||||||
|
}
|
||||||
|
.icon-arrows-alt:before {
|
||||||
|
content: "\f0b2";
|
||||||
|
}
|
||||||
|
.icon-users:before {
|
||||||
|
content: "\f0c0";
|
||||||
|
}
|
||||||
|
.icon-link:before {
|
||||||
|
content: "\f0c1";
|
||||||
|
}
|
||||||
|
.icon-cloud:before {
|
||||||
|
content: "\f0c2";
|
||||||
|
}
|
||||||
|
.icon-flask:before {
|
||||||
|
content: "\f0c3";
|
||||||
|
}
|
||||||
|
.icon-paperclip:before {
|
||||||
|
content: "\f0c6";
|
||||||
|
}
|
||||||
|
.icon-save:before {
|
||||||
|
content: "\f0c7";
|
||||||
|
}
|
||||||
|
.icon-magic:before {
|
||||||
|
content: "\f0d0";
|
||||||
|
}
|
||||||
|
.icon-truck:before {
|
||||||
|
content: "\f0d1";
|
||||||
|
}
|
||||||
|
.icon-money-bill:before {
|
||||||
|
content: "\f0d6";
|
||||||
|
}
|
||||||
|
.icon-caret-down:before {
|
||||||
|
content: "\f0d7";
|
||||||
|
}
|
||||||
|
.icon-caret-up:before {
|
||||||
|
content: "\f0d8";
|
||||||
|
}
|
||||||
|
.icon-caret-left:before {
|
||||||
|
content: "\f0d9";
|
||||||
|
}
|
||||||
|
.icon-caret-right:before {
|
||||||
|
content: "\f0da";
|
||||||
|
}
|
||||||
|
.icon-columns:before {
|
||||||
|
content: "\f0db";
|
||||||
|
}
|
||||||
|
.icon-sort:before {
|
||||||
|
content: "\f0dc";
|
||||||
|
}
|
||||||
|
.icon-sort-down:before {
|
||||||
|
content: "\f0dd";
|
||||||
|
}
|
||||||
|
.icon-sort-up:before {
|
||||||
|
content: "\f0de";
|
||||||
|
}
|
||||||
|
.icon-envelope:before {
|
||||||
|
content: "\f0e0";
|
||||||
|
}
|
||||||
|
.icon-undo:before {
|
||||||
|
content: "\f0e2";
|
||||||
|
}
|
||||||
|
.icon-bolt:before {
|
||||||
|
content: "\f0e7";
|
||||||
|
}
|
||||||
|
.icon-umbrella:before {
|
||||||
|
content: "\f0e9";
|
||||||
|
}
|
||||||
|
.icon-lightbulb:before {
|
||||||
|
content: "\f0eb";
|
||||||
|
}
|
||||||
|
.icon-bell:before {
|
||||||
|
content: "\f0f3";
|
||||||
|
}
|
||||||
|
.icon-coffee:before {
|
||||||
|
content: "\f0f4";
|
||||||
|
}
|
||||||
|
.icon-angle-double-left:before {
|
||||||
|
content: "\f100";
|
||||||
|
}
|
||||||
|
.icon-angle-double-right:before {
|
||||||
|
content: "\f101";
|
||||||
|
}
|
||||||
|
.icon-angle-double-up:before {
|
||||||
|
content: "\f102";
|
||||||
|
}
|
||||||
|
.icon-angle-double-down:before {
|
||||||
|
content: "\f103";
|
||||||
|
}
|
||||||
|
.icon-angle-left:before {
|
||||||
|
content: "\f104";
|
||||||
|
}
|
||||||
|
.icon-angle-right:before {
|
||||||
|
content: "\f105";
|
||||||
|
}
|
||||||
|
.icon-angle-up:before {
|
||||||
|
content: "\f106";
|
||||||
|
}
|
||||||
|
.icon-angle-down:before {
|
||||||
|
content: "\f107";
|
||||||
|
}
|
||||||
|
.icon-desktop:before {
|
||||||
|
content: "\f108";
|
||||||
|
}
|
||||||
|
.icon-laptop:before {
|
||||||
|
content: "\f109";
|
||||||
|
}
|
||||||
|
.icon-tablet:before {
|
||||||
|
content: "\f10a";
|
||||||
|
}
|
||||||
|
.icon-mobile:before {
|
||||||
|
content: "\f10b";
|
||||||
|
}
|
||||||
|
.icon-quote-left:before {
|
||||||
|
content: "\f10d";
|
||||||
|
}
|
||||||
|
.icon-quote-right:before {
|
||||||
|
content: "\f10e";
|
||||||
|
}
|
||||||
|
.icon-smile:before {
|
||||||
|
content: "\f118";
|
||||||
|
}
|
||||||
|
.icon-frown:before {
|
||||||
|
content: "\f119";
|
||||||
|
}
|
||||||
|
.icon-meh:before {
|
||||||
|
content: "\f11a";
|
||||||
|
}
|
||||||
|
.icon-terminal:before {
|
||||||
|
content: "\f120";
|
||||||
|
}
|
||||||
|
.icon-code:before {
|
||||||
|
content: "\f121";
|
||||||
|
}
|
||||||
|
.icon-question:before {
|
||||||
|
content: "\f128";
|
||||||
|
}
|
||||||
|
.icon-info:before {
|
||||||
|
content: "\f129";
|
||||||
|
}
|
||||||
|
.icon-exclamation:before {
|
||||||
|
content: "\f12a";
|
||||||
|
}
|
||||||
|
.icon-anchor:before {
|
||||||
|
content: "\f13d";
|
||||||
|
}
|
||||||
|
.icon-unlock-alt:before {
|
||||||
|
content: "\f13e";
|
||||||
|
}
|
||||||
|
.icon-ellipsis-h:before {
|
||||||
|
content: "\f141";
|
||||||
|
}
|
||||||
|
.icon-ellipsis-v:before {
|
||||||
|
content: "\f142";
|
||||||
|
}
|
||||||
|
.icon-compass:before {
|
||||||
|
content: "\f14e";
|
||||||
|
}
|
||||||
|
.icon-file:before {
|
||||||
|
content: "\f15b";
|
||||||
|
}
|
||||||
|
.icon-file-alt:before {
|
||||||
|
content: "\f15c";
|
||||||
|
}
|
||||||
|
.icon-thumbs-up:before {
|
||||||
|
content: "\f164";
|
||||||
|
}
|
||||||
|
.icon-thumbs-down:before {
|
||||||
|
content: "\f165";
|
||||||
|
}
|
||||||
|
.icon-female:before {
|
||||||
|
content: "\f182";
|
||||||
|
}
|
||||||
|
.icon-male:before {
|
||||||
|
content: "\f183";
|
||||||
|
}
|
||||||
|
.icon-bug:before {
|
||||||
|
content: "\f188";
|
||||||
|
}
|
||||||
|
.icon-university:before {
|
||||||
|
content: "\f19c";
|
||||||
|
}
|
||||||
|
.icon-building:before {
|
||||||
|
content: "\f1ad";
|
||||||
|
}
|
||||||
|
.icon-child:before {
|
||||||
|
content: "\f1ae";
|
||||||
|
}
|
||||||
|
.icon-car:before {
|
||||||
|
content: "\f1b9";
|
||||||
|
}
|
||||||
|
.icon-taxi:before {
|
||||||
|
content: "\f1ba";
|
||||||
|
}
|
||||||
|
.icon-database:before {
|
||||||
|
content: "\f1c0";
|
||||||
|
}
|
||||||
|
.icon-file-pdf:before {
|
||||||
|
content: "\f1c1";
|
||||||
|
}
|
||||||
|
.icon-file-word:before {
|
||||||
|
content: "\f1c2";
|
||||||
|
}
|
||||||
|
.icon-file-excel:before {
|
||||||
|
content: "\f1c3";
|
||||||
|
}
|
||||||
|
.icon-file-powerpoint:before {
|
||||||
|
content: "\f1c4";
|
||||||
|
}
|
||||||
|
.icon-file-image:before {
|
||||||
|
content: "\f1c5";
|
||||||
|
}
|
||||||
|
.icon-file-archive:before {
|
||||||
|
content: "\f1c6";
|
||||||
|
}
|
||||||
|
.icon-file-audio:before {
|
||||||
|
content: "\f1c7";
|
||||||
|
}
|
||||||
|
.icon-file-video:before {
|
||||||
|
content: "\f1c8";
|
||||||
|
}
|
||||||
|
.icon-file-code:before {
|
||||||
|
content: "\f1c9";
|
||||||
|
}
|
||||||
|
.icon-paper-plane:before {
|
||||||
|
content: "\f1d8";
|
||||||
|
}
|
||||||
|
.icon-sliders-h:before {
|
||||||
|
content: "\f1de";
|
||||||
|
}
|
||||||
|
.icon-share-alt:before {
|
||||||
|
content: "\f1e0";
|
||||||
|
}
|
||||||
|
.icon-wifi:before {
|
||||||
|
content: "\f1eb";
|
||||||
|
}
|
||||||
|
.icon-bell-slash:before {
|
||||||
|
content: "\f1f6";
|
||||||
|
}
|
||||||
|
.icon-trash:before {
|
||||||
|
content: "\f1f8";
|
||||||
|
}
|
||||||
|
.icon-at:before {
|
||||||
|
content: "\f1fa";
|
||||||
|
}
|
||||||
|
.icon-chart-area:before {
|
||||||
|
content: "\f1fe";
|
||||||
|
}
|
||||||
|
.icon-chart-pie:before {
|
||||||
|
content: "\f200";
|
||||||
|
}
|
||||||
|
.icon-chart-line:before {
|
||||||
|
content: "\f201";
|
||||||
|
}
|
||||||
|
.icon-toggle-off:before {
|
||||||
|
content: "\f204";
|
||||||
|
}
|
||||||
|
.icon-toggle-on:before {
|
||||||
|
content: "\f205";
|
||||||
|
}
|
||||||
|
.icon-closed-captioning:before {
|
||||||
|
content: "\f20a";
|
||||||
|
}
|
||||||
|
.icon-cart-plus:before {
|
||||||
|
content: "\f217";
|
||||||
|
}
|
||||||
|
.icon-cart-arrow-down:before {
|
||||||
|
content: "\f218";
|
||||||
|
}
|
||||||
|
.icon-sticky-note:before {
|
||||||
|
content: "\f249";
|
||||||
|
}
|
||||||
|
.icon-clone:before {
|
||||||
|
content: "\f24d";
|
||||||
|
}
|
||||||
|
.icon-hourglass-start:before {
|
||||||
|
content: "\f251";
|
||||||
|
}
|
||||||
|
.icon-hourglass-half:before {
|
||||||
|
content: "\f252";
|
||||||
|
}
|
||||||
|
.icon-hourglass-end:before {
|
||||||
|
content: "\f253";
|
||||||
|
}
|
||||||
|
.icon-hourglass:before {
|
||||||
|
content: "\f254";
|
||||||
|
}
|
||||||
|
.icon-tv:before {
|
||||||
|
content: "\f26c";
|
||||||
|
}
|
||||||
|
.icon-industry:before {
|
||||||
|
content: "\f275";
|
||||||
|
}
|
||||||
|
.icon-map-signs:before {
|
||||||
|
content: "\f277";
|
||||||
|
}
|
||||||
|
.icon-map:before {
|
||||||
|
content: "\f279";
|
||||||
|
}
|
||||||
|
.icon-shopping-bag:before {
|
||||||
|
content: "\f290";
|
||||||
|
}
|
||||||
|
.icon-shopping-basket:before {
|
||||||
|
content: "\f291";
|
||||||
|
}
|
||||||
|
.icon-universal-access:before {
|
||||||
|
content: "\f29a";
|
||||||
|
}
|
||||||
|
.icon-blind:before {
|
||||||
|
content: "\f29d";
|
||||||
|
}
|
||||||
|
.icon-handshake:before {
|
||||||
|
content: "\f2b5";
|
||||||
|
}
|
||||||
|
.icon-address-book:before {
|
||||||
|
content: "\f2b9";
|
||||||
|
}
|
||||||
|
.icon-address-card:before {
|
||||||
|
content: "\f2bb";
|
||||||
|
}
|
||||||
|
.icon-user-circle:before {
|
||||||
|
content: "\f2bd";
|
||||||
|
}
|
||||||
|
.icon-id-badge:before {
|
||||||
|
content: "\f2c1";
|
||||||
|
}
|
||||||
|
.icon-id-card:before {
|
||||||
|
content: "\f2c2";
|
||||||
|
}
|
||||||
|
.icon-podcast:before {
|
||||||
|
content: "\f2ce";
|
||||||
|
}
|
||||||
|
.icon-snowflake:before {
|
||||||
|
content: "\f2dc";
|
||||||
|
}
|
||||||
|
.icon-undo-alt:before {
|
||||||
|
content: "\f2ea";
|
||||||
|
}
|
||||||
|
.icon-trash-alt:before {
|
||||||
|
content: "\f2ed";
|
||||||
|
}
|
||||||
|
.icon-sync-alt:before {
|
||||||
|
content: "\f2f1";
|
||||||
|
}
|
||||||
|
.icon-sign-out-alt:before {
|
||||||
|
content: "\f2f5";
|
||||||
|
}
|
||||||
|
.icon-sign-in-alt:before {
|
||||||
|
content: "\f2f6";
|
||||||
|
}
|
||||||
|
.icon-redo-alt:before {
|
||||||
|
content: "\f2f9";
|
||||||
|
}
|
||||||
|
.icon-map-marker-alt:before {
|
||||||
|
content: "\f3c5";
|
||||||
|
}
|
||||||
|
.icon-microphone-alt:before {
|
||||||
|
content: "\f3c9";
|
||||||
|
}
|
||||||
|
.icon-shield-alt:before {
|
||||||
|
content: "\f3ed";
|
||||||
|
}
|
||||||
|
.icon-user-alt:before {
|
||||||
|
content: "\f406";
|
||||||
|
}
|
||||||
|
.icon-box:before {
|
||||||
|
content: "\f466";
|
||||||
|
}
|
||||||
|
.icon-clipboard-check:before {
|
||||||
|
content: "\f46c";
|
||||||
|
}
|
||||||
|
.icon-clipboard-list:before {
|
||||||
|
content: "\f46d";
|
||||||
|
}
|
||||||
|
.icon-comment-dots:before {
|
||||||
|
content: "\f4ad";
|
||||||
|
}
|
||||||
|
.icon-dove:before {
|
||||||
|
content: "\f4ba";
|
||||||
|
}
|
||||||
|
.icon-hand-holding:before {
|
||||||
|
content: "\f4bd";
|
||||||
|
}
|
||||||
|
.icon-piggy-bank:before {
|
||||||
|
content: "\f4d3";
|
||||||
|
}
|
||||||
|
.icon-seedling:before {
|
||||||
|
content: "\f4d8";
|
||||||
|
}
|
||||||
|
.icon-user-alt-slash:before {
|
||||||
|
content: "\f4fa";
|
||||||
|
}
|
||||||
|
.icon-user-astronaut:before {
|
||||||
|
content: "\f4fb";
|
||||||
|
}
|
||||||
|
.icon-user-check:before {
|
||||||
|
content: "\f4fc";
|
||||||
|
}
|
||||||
|
.icon-user-clock:before {
|
||||||
|
content: "\f4fd";
|
||||||
|
}
|
||||||
|
.icon-user-cog:before {
|
||||||
|
content: "\f4fe";
|
||||||
|
}
|
||||||
|
.icon-user-edit:before {
|
||||||
|
content: "\f4ff";
|
||||||
|
}
|
||||||
|
.icon-user-friends:before {
|
||||||
|
content: "\f500";
|
||||||
|
}
|
||||||
|
.icon-user-graduate:before {
|
||||||
|
content: "\f501";
|
||||||
|
}
|
||||||
|
.icon-user-lock:before {
|
||||||
|
content: "\f502";
|
||||||
|
}
|
||||||
|
.icon-user-minus:before {
|
||||||
|
content: "\f503";
|
||||||
|
}
|
||||||
|
.icon-user-ninja:before {
|
||||||
|
content: "\f504";
|
||||||
|
}
|
||||||
|
.icon-user-shield:before {
|
||||||
|
content: "\f505";
|
||||||
|
}
|
||||||
|
.icon-user-slash:before {
|
||||||
|
content: "\f506";
|
||||||
|
}
|
||||||
|
.icon-user-tag:before {
|
||||||
|
content: "\f507";
|
||||||
|
}
|
||||||
|
.icon-user-tie:before {
|
||||||
|
content: "\f508";
|
||||||
|
}
|
||||||
|
.icon-users-cog:before {
|
||||||
|
content: "\f509";
|
||||||
|
}
|
||||||
|
.icon-glasses:before {
|
||||||
|
content: "\f530";
|
||||||
|
}
|
||||||
|
.icon-palette:before {
|
||||||
|
content: "\f53f";
|
||||||
|
}
|
||||||
|
.icon-robot:before {
|
||||||
|
content: "\f544";
|
||||||
|
}
|
||||||
|
.icon-store:before {
|
||||||
|
content: "\f54e";
|
||||||
|
}
|
||||||
|
.icon-store-alt:before {
|
||||||
|
content: "\f54f";
|
||||||
|
}
|
||||||
|
.icon-atlas:before {
|
||||||
|
content: "\f558";
|
||||||
|
}
|
||||||
|
.icon-backspace:before {
|
||||||
|
content: "\f55a";
|
||||||
|
}
|
||||||
|
.icon-fingerprint:before {
|
||||||
|
content: "\f577";
|
||||||
|
}
|
||||||
|
.icon-globe-americas:before {
|
||||||
|
content: "\f57d";
|
||||||
|
}
|
||||||
|
.icon-headphones-alt:before {
|
||||||
|
content: "\f58f";
|
||||||
|
}
|
||||||
|
.icon-map-marked-alt:before {
|
||||||
|
content: "\f5a0";
|
||||||
|
}
|
||||||
|
.icon-paint-roller:before {
|
||||||
|
content: "\f5aa";
|
||||||
|
}
|
||||||
|
.icon-pen-fancy:before {
|
||||||
|
content: "\f5ac";
|
||||||
|
}
|
||||||
|
.icon-signature:before {
|
||||||
|
content: "\f5b7";
|
||||||
|
}
|
||||||
|
.icon-poop:before {
|
||||||
|
content: "\f619";
|
||||||
|
}
|
||||||
|
.icon-ad:before {
|
||||||
|
content: "\f641";
|
||||||
|
}
|
||||||
|
.icon-file-csv:before {
|
||||||
|
content: "\f6dd";
|
||||||
|
}
|
||||||
|
.icon-mask:before {
|
||||||
|
content: "\f6fa";
|
||||||
|
}
|
||||||
|
.icon-spider:before {
|
||||||
|
content: "\f717";
|
||||||
|
}
|
||||||
|
.icon-tractor:before {
|
||||||
|
content: "\f722";
|
||||||
|
}
|
||||||
|
.icon-calendar-day:before {
|
||||||
|
content: "\f783";
|
||||||
|
}
|
||||||
|
.icon-carrot:before {
|
||||||
|
content: "\f787";
|
||||||
|
}
|
||||||
|
.icon-guitar:before {
|
||||||
|
content: "\f7a6";
|
||||||
|
}
|
||||||
|
.icon-mug-hot:before {
|
||||||
|
content: "\f7b6";
|
||||||
|
}
|
||||||
|
.icon-hamburger:before {
|
||||||
|
content: "\f805";
|
||||||
|
}
|
||||||
|
.icon-hotdog:before {
|
||||||
|
content: "\f80f";
|
||||||
|
}
|
||||||
|
.icon-pepper-hot:before {
|
||||||
|
content: "\f816";
|
||||||
|
}
|
||||||
|
.icon-hat-cowboy:before {
|
||||||
|
content: "\f8c0";
|
||||||
|
}
|
||||||
|
.icon-mouse:before {
|
||||||
|
content: "\f8cc";
|
||||||
|
}
|
||||||
|
.icon-unity:before {
|
||||||
|
content: "\e049";
|
||||||
|
}
|
||||||
|
.icon-shopify:before {
|
||||||
|
content: "\e057";
|
||||||
|
}
|
||||||
|
.icon-rust:before {
|
||||||
|
content: "\e07a";
|
||||||
|
}
|
||||||
|
.icon-tiktok:before {
|
||||||
|
content: "\e07b";
|
||||||
|
}
|
||||||
|
.icon-linkedin:before {
|
||||||
|
content: "\f08c";
|
||||||
|
}
|
||||||
|
.icon-twitter:before {
|
||||||
|
content: "\f099";
|
||||||
|
}
|
||||||
|
.icon-facebook:before {
|
||||||
|
content: "\f09a";
|
||||||
|
}
|
||||||
|
.icon-github:before {
|
||||||
|
content: "\f09b";
|
||||||
|
}
|
||||||
|
.icon-pinterest:before {
|
||||||
|
content: "\f0d2";
|
||||||
|
}
|
||||||
|
.icon-youtube:before {
|
||||||
|
content: "\f167";
|
||||||
|
}
|
||||||
|
.icon-stack-overflow:before {
|
||||||
|
content: "\f16c";
|
||||||
|
}
|
||||||
|
.icon-instagram:before {
|
||||||
|
content: "\f16d";
|
||||||
|
}
|
||||||
|
.icon-apple:before {
|
||||||
|
content: "\f179";
|
||||||
|
}
|
||||||
|
.icon-windows:before {
|
||||||
|
content: "\f17a";
|
||||||
|
}
|
||||||
|
.icon-android:before {
|
||||||
|
content: "\f17b";
|
||||||
|
}
|
||||||
|
.icon-linux:before {
|
||||||
|
content: "\f17c";
|
||||||
|
}
|
||||||
|
.icon-skype:before {
|
||||||
|
content: "\f17e";
|
||||||
|
}
|
||||||
|
.icon-trello:before {
|
||||||
|
content: "\f181";
|
||||||
|
}
|
||||||
|
.icon-slack:before {
|
||||||
|
content: "\f198";
|
||||||
|
}
|
||||||
|
.icon-reddit:before {
|
||||||
|
content: "\f1a1";
|
||||||
|
}
|
||||||
|
.icon-steam:before {
|
||||||
|
content: "\f1b6";
|
||||||
|
}
|
||||||
|
.icon-spotify:before {
|
||||||
|
content: "\f1bc";
|
||||||
|
}
|
||||||
|
.icon-twitch:before {
|
||||||
|
content: "\f1e8";
|
||||||
|
}
|
||||||
|
.icon-paypal:before {
|
||||||
|
content: "\f1ed";
|
||||||
|
}
|
||||||
|
.icon-cc-visa:before {
|
||||||
|
content: "\f1f0";
|
||||||
|
}
|
||||||
|
.icon-cc-mastercard:before {
|
||||||
|
content: "\f1f1";
|
||||||
|
}
|
||||||
|
.icon-lastfm:before {
|
||||||
|
content: "\f202";
|
||||||
|
}
|
||||||
|
.icon-whatsapp:before {
|
||||||
|
content: "\f232";
|
||||||
|
}
|
||||||
|
.icon-get-pocket:before {
|
||||||
|
content: "\f265";
|
||||||
|
}
|
||||||
|
.icon-amazon:before {
|
||||||
|
content: "\f270";
|
||||||
|
}
|
||||||
|
.icon-gitlab:before {
|
||||||
|
content: "\f296";
|
||||||
|
}
|
||||||
|
.icon-snapchat:before {
|
||||||
|
content: "\f2ab";
|
||||||
|
}
|
||||||
|
.icon-telegram:before {
|
||||||
|
content: "\f2c6";
|
||||||
|
}
|
||||||
|
.icon-meetup:before {
|
||||||
|
content: "\f2e0";
|
||||||
|
}
|
||||||
|
.icon-audible:before {
|
||||||
|
content: "\f373";
|
||||||
|
}
|
||||||
|
.icon-aws:before {
|
||||||
|
content: "\f375";
|
||||||
|
}
|
||||||
|
.icon-discord:before {
|
||||||
|
content: "\f392";
|
||||||
|
}
|
||||||
|
.icon-docker:before {
|
||||||
|
content: "\f395";
|
||||||
|
}
|
||||||
|
.icon-google-drive:before {
|
||||||
|
content: "\f3aa";
|
||||||
|
}
|
||||||
|
.icon-google-play:before {
|
||||||
|
content: "\f3ab";
|
||||||
|
}
|
||||||
|
.icon-hubspot:before {
|
||||||
|
content: "\f3b2";
|
||||||
|
}
|
||||||
|
.icon-kickstarter-k:before {
|
||||||
|
content: "\f3bc";
|
||||||
|
}
|
||||||
|
.icon-npm:before {
|
||||||
|
content: "\f3d4";
|
||||||
|
}
|
||||||
|
.icon-patreon:before {
|
||||||
|
content: "\f3d9";
|
||||||
|
}
|
||||||
|
.icon-playstation:before {
|
||||||
|
content: "\f3df";
|
||||||
|
}
|
||||||
|
.icon-python:before {
|
||||||
|
content: "\f3e2";
|
||||||
|
}
|
||||||
|
.icon-rocketchat:before {
|
||||||
|
content: "\f3e8";
|
||||||
|
}
|
||||||
|
.icon-steam-symbol:before {
|
||||||
|
content: "\f3f6";
|
||||||
|
}
|
||||||
|
.icon-apple-pay:before {
|
||||||
|
content: "\f415";
|
||||||
|
}
|
||||||
|
.icon-amazon-pay:before {
|
||||||
|
content: "\f42c";
|
||||||
|
}
|
||||||
|
.icon-mastodon:before {
|
||||||
|
content: "\f4f6";
|
||||||
|
}
|
||||||
|
.icon-git-alt:before {
|
||||||
|
content: "\f841";
|
||||||
|
}
|
BIN
static/icons/fontawesome.eot
Normal file
BIN
static/icons/fontawesome.eot
Normal file
Binary file not shown.
320
static/icons/fontawesome.svg
Normal file
320
static/icons/fontawesome.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 224 KiB |
BIN
static/icons/fontawesome.ttf
Normal file
BIN
static/icons/fontawesome.ttf
Normal file
Binary file not shown.
BIN
static/icons/fontawesome.woff
Normal file
BIN
static/icons/fontawesome.woff
Normal file
Binary file not shown.
12
theme.toml
12
theme.toml
|
@ -1,10 +1,10 @@
|
||||||
name = 'cabinet'
|
name = 'vitrine'
|
||||||
license = 'GPL3'
|
license = 'GPL3'
|
||||||
licenselink = 'https://code.nutfactory.org/themes/cabinet/LICENSE'
|
licenselink = 'https://code.nutfactory.org/themes/vitrine/LICENSE'
|
||||||
description = 'A Pure CSS Hugo theme for portfolio websites'
|
description = 'A Pure CSS Hugo theme for portfolio websites'
|
||||||
|
|
||||||
# The home page of the theme, where the source can be found
|
# The home page of the theme, where the source can be found
|
||||||
homepage = 'https://code.nutfactory.org/themes/cabinet'
|
homepage = 'https://code.nutfactory.org/themes/vitrine'
|
||||||
|
|
||||||
# If you have a running demo of the theme
|
# If you have a running demo of the theme
|
||||||
demosite = 'https://owner.github.io/repo'
|
demosite = 'https://owner.github.io/repo'
|
||||||
|
@ -17,9 +17,3 @@ features = ['some', 'awesome', 'features']
|
||||||
[author]
|
[author]
|
||||||
name = 'hoernschen'
|
name = 'hoernschen'
|
||||||
homepage = 'https://hoernschen.de'
|
homepage = 'https://hoernschen.de'
|
||||||
|
|
||||||
# If porting an existing theme
|
|
||||||
[original]
|
|
||||||
author = 'Name of original author'
|
|
||||||
homepage = 'Website of original author'
|
|
||||||
repo = 'https://github.com/owner/repo'
|
|
||||||
|
|
Loading…
Reference in a new issue