Compare commits
38 Commits
5dc495e825
...
canonical-
| Author | SHA1 | Date | |
|---|---|---|---|
| 76fb50a8b6 | |||
| 275c5b679b | |||
| 161cc14764 | |||
| 49cda38430 | |||
| c3f43c408d | |||
| 35ca126618 | |||
| a61b6e2761 | |||
| e3c8fee6e8 | |||
| 68a7866b18 | |||
| 8101b4dbfa | |||
| f0056972e3 | |||
| d0a21e8b36 | |||
| 24b999b2f2 | |||
| 67ecb5ddb5 | |||
| 12f0be4536 | |||
| 04a0631b41 | |||
|
1e696121d9
|
|||
|
8677d08969
|
|||
|
5e7fe99969
|
|||
|
2305b246c1
|
|||
|
497ad86122
|
|||
|
d1d191e413
|
|||
|
b546a2a529
|
|||
|
8b794bfa8e
|
|||
|
d14bcf3c8f
|
|||
|
b652c45375
|
|||
|
ae2e8100fd
|
|||
|
14283b1a33
|
|||
|
7ec40caf8e
|
|||
|
5f5fd0d0a6
|
|||
|
92d14f955f
|
|||
|
58ef63cc6a
|
|||
|
ec1ecb7d98
|
|||
|
1c2ad9d029
|
|||
|
3a6462c1d7
|
|||
|
38ca0829f6
|
|||
|
990bce6252
|
|||
|
651e95503d
|
9
.gitignore
vendored
@@ -1,5 +1,10 @@
|
||||
public/*
|
||||
/* resources/_gen/* */
|
||||
public/
|
||||
/* _gen files required by Netlify */
|
||||
resources/_gen/
|
||||
themes/base16*
|
||||
|
||||
*.pdf
|
||||
|
||||
commit-msg.txt
|
||||
.hugo_build.lock
|
||||
static/server-apps.json
|
||||
|
||||
7
.gitmodules
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
[submodule "content/letter"]
|
||||
path = content/letter
|
||||
url = ssh://git@git.kevin-mok.com:399/Kevin-Mok/cover-letters.git
|
||||
branch = master
|
||||
[submodule "static/pdf"]
|
||||
path = static/pdf
|
||||
url = ssh://git@git.kevin-mok.com:399/Kevin-Mok/resume-pdf.git
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
// base colors {{{ //
|
||||
|
||||
$base02: #515151;
|
||||
$base03: #747369;
|
||||
$base04: #a09f93;
|
||||
$base05: #d3d0c8;
|
||||
$base-red: #f2777a;
|
||||
@@ -33,25 +35,36 @@ $base-dark-orange: #d27b53;
|
||||
|
||||
// mixins {{{ //
|
||||
|
||||
$max-page-width: 52em;
|
||||
// $max-page-width: 52em;
|
||||
$max-page-width: 45em;
|
||||
$phone-width: 800px;
|
||||
|
||||
@mixin side-padding-rem($n) {
|
||||
@mixin side-padding-rem($n) {// {{{
|
||||
padding-left: $n * 1rem;
|
||||
padding-right: $n * 1rem;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
@mixin vert-padding-rem($n) {
|
||||
@mixin side-margin-em($n) {// {{{
|
||||
margin-left: $n * 1em;
|
||||
margin-right: $n * 1em;
|
||||
}// }}}
|
||||
|
||||
@mixin vert-padding-rem($n) {// {{{
|
||||
padding-top: $n * 1rem;
|
||||
padding-bottom: $n * 1rem;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
@mixin auto-center() {
|
||||
@mixin vert-margin-rem($n) {// {{{
|
||||
margin-top: $n * 1rem;
|
||||
margin-bottom: $n * 1rem;
|
||||
}// }}}
|
||||
|
||||
@mixin auto-center() {// {{{
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
@mixin article-body() {
|
||||
@mixin article-body() {// {{{
|
||||
/* background-color: #e6e6fa; */
|
||||
background-color: #cbbeb5;
|
||||
color: #2d2d2d;
|
||||
@@ -63,9 +76,9 @@ $phone-width: 800px;
|
||||
@media (max-width: $max-page-width) {
|
||||
@include side-padding-rem(2);
|
||||
}
|
||||
}
|
||||
}// }}}
|
||||
|
||||
@mixin a-color($color) {
|
||||
@mixin a-color($color) {// {{{
|
||||
a {
|
||||
color: $color;
|
||||
&:visited {
|
||||
@@ -75,18 +88,28 @@ $phone-width: 800px;
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}// }}}
|
||||
|
||||
// }}} mixins //
|
||||
|
||||
// general elements {{{ //
|
||||
|
||||
// $background-color: #2d2d2d;
|
||||
// $color: #f2f0ec;
|
||||
$background-color: white;
|
||||
$color: black;
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #2d2d2d;
|
||||
color: #f2f0ec;
|
||||
background-color: $background-color;
|
||||
color: $color;
|
||||
line-height: 1.5;
|
||||
font-size: 100%;
|
||||
// font-size: 100%;
|
||||
// font-size: 12px;
|
||||
// font-size: 15px;
|
||||
font-size: 17.5px;
|
||||
// font-size: 20px;
|
||||
// font-size: 22px;
|
||||
/* font-family: 'Source Code Pro', monospace; */
|
||||
font-family: 'Hack', monospace;
|
||||
display: flex;
|
||||
@@ -102,10 +125,6 @@ body {
|
||||
margin-right: auto;
|
||||
flex: 1;
|
||||
|
||||
.copyright {
|
||||
@include a-color(#747369);
|
||||
}
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -146,21 +165,66 @@ header {
|
||||
}
|
||||
|
||||
footer {
|
||||
// base {{{ //
|
||||
|
||||
@include a-color(#747369);
|
||||
// background-color: #393939;
|
||||
// max-width: $max-page-width;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
$vertical-margin: .2em;
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
font-size: 0.8em;
|
||||
color: #747369;
|
||||
// bottom: 0;
|
||||
// position: absolute;
|
||||
// width: 100%;
|
||||
|
||||
.container {
|
||||
background-color: #393939;
|
||||
max-width: 62em;
|
||||
// }}} base //
|
||||
|
||||
.container {// {{{
|
||||
// max-width: $max-page-width;
|
||||
// min-width: $max-page-width;
|
||||
@include auto-center();
|
||||
@include vert-padding-rem(.1);
|
||||
}
|
||||
// @include vert-padding-rem(.1);
|
||||
@include side-padding-rem(0);
|
||||
|
||||
#footer-row {
|
||||
// background-color: #393939;
|
||||
}
|
||||
|
||||
#footer-content {
|
||||
$side-padding: 2.5em;
|
||||
@include vert-padding-rem(.35);
|
||||
border-style: solid;
|
||||
border-width: 1px 0 0 0;
|
||||
border-color: rgba(81, 81, 81, .75);
|
||||
|
||||
#copyright {
|
||||
// padding-left: .85em;
|
||||
padding-left: $side-padding;
|
||||
position: relative;
|
||||
top: 2px;
|
||||
@include a-color(#747369);
|
||||
}
|
||||
|
||||
#social-icons {
|
||||
position: relative;
|
||||
padding-right: $side-padding;
|
||||
// padding-right: .9em;
|
||||
|
||||
img {
|
||||
height: 1.5em;
|
||||
@include vert-margin-rem(.2);
|
||||
padding-left: .5em;
|
||||
opacity: .6;
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}// }}}
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
margin-top: 0;
|
||||
@@ -188,10 +252,22 @@ p {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
h1 { font-size: 2rem }
|
||||
h2 { font-size: 1.5rem }
|
||||
// h1 {
|
||||
// font-size: 2rem;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 1.75rem;
|
||||
// }
|
||||
// }
|
||||
// h2 {
|
||||
// font-size: 1.5rem;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 1.4rem;
|
||||
// }
|
||||
// }
|
||||
h3 { font-size: 1.25rem }
|
||||
h4 { font-size: 1rem }
|
||||
// h4 { font-size: 1rem }
|
||||
h5 { font-size: .875rem }
|
||||
h6 { font-size: .75rem }
|
||||
|
||||
@@ -216,10 +292,6 @@ header {// {{{
|
||||
}
|
||||
}// }}}
|
||||
|
||||
footer {// {{{
|
||||
@include a-color(#747369);
|
||||
}// }}}
|
||||
|
||||
.page-not-found {// {{{
|
||||
h1 {
|
||||
text-align: center;
|
||||
@@ -246,11 +318,12 @@ footer {// {{{
|
||||
|
||||
#homepage {// {{{
|
||||
#about {
|
||||
font-size: 1.25rem;
|
||||
font-size: 1.1rem;
|
||||
|
||||
h2 {
|
||||
margin-top: 1.25rem;
|
||||
font-size: 2rem;
|
||||
// font-size: 2rem;
|
||||
font-size: 1.9rem;
|
||||
color: $base-yellow;
|
||||
text-align: center;
|
||||
|
||||
@@ -407,30 +480,280 @@ footer {// {{{
|
||||
margin-right: 2em;
|
||||
} */// }}}
|
||||
|
||||
#resume {
|
||||
a {
|
||||
#print-icon {// {{{
|
||||
float: right;
|
||||
display: none;
|
||||
|
||||
img {
|
||||
height: 1.75em;
|
||||
position: relative;
|
||||
top: 1em;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
#contact-info {// {{{
|
||||
@include side-margin-em(0);
|
||||
// @include vert-padding-rem(0.5);
|
||||
@include a-color($base-sky-blue);
|
||||
// min-width: $max-page-width;
|
||||
@media (min-width: 1200px) {
|
||||
.container{
|
||||
min-width: $max-page-width;
|
||||
}
|
||||
}
|
||||
a {// {{{
|
||||
text-decoration: none;
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
// font-size: .9em;
|
||||
font-size: .8em;
|
||||
|
||||
.row {
|
||||
// flex-grow: 1;
|
||||
color: $base05;
|
||||
|
||||
img {
|
||||
height: 1em;
|
||||
// @media (max-width: $phone-width) {
|
||||
// height: 1.5em;
|
||||
// }
|
||||
}
|
||||
|
||||
div[class^="col"] {
|
||||
@include side-padding-rem(0);
|
||||
// text-align: center;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.url-info {
|
||||
margin-left: 5px;
|
||||
// position: relative;
|
||||
// left: -8px;
|
||||
// @media (max-width: $phone-width) {
|
||||
// // display: none;
|
||||
// // font-size: 10px;
|
||||
// font-size: .8em;
|
||||
// }
|
||||
}
|
||||
|
||||
}// }}}
|
||||
|
||||
#resume {// {{{
|
||||
a {// {{{
|
||||
// text-decoration: none;
|
||||
text-decoration: underline;
|
||||
&:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
h1 {// {{{
|
||||
color: $base-orange;
|
||||
// margin-top: 1.3rem;
|
||||
margin-top: 1rem;
|
||||
font-size: 1.2em;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// margin-top: .75rem;
|
||||
// }
|
||||
}// }}}
|
||||
h2 {// {{{
|
||||
color: $base-orange;
|
||||
margin-top: .5rem;
|
||||
font-size: 1em;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 1.2em;
|
||||
// margin-top: .75rem;
|
||||
// }
|
||||
}// }}}
|
||||
h4 {// {{{
|
||||
color: $base-yellow;
|
||||
margin-top: .5rem;
|
||||
font-size: 1.2em;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 1.2em;
|
||||
// margin-top: .75rem;
|
||||
// }
|
||||
}// }}}
|
||||
|
||||
.date {// {{{
|
||||
float: right;
|
||||
color: $base03;
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// padding-top: 0em;
|
||||
// }
|
||||
}// }}}
|
||||
|
||||
ul {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#projects {// {{{
|
||||
// // h1 {
|
||||
// // margin-bottom: 3px;
|
||||
// // }
|
||||
|
||||
.project {// {{{
|
||||
@include vert-padding-rem(.2);
|
||||
|
||||
h2 {
|
||||
color: $base-sky-blue;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 1.2em;
|
||||
}
|
||||
|
||||
.project-header {
|
||||
// margin-bottom: .6em;
|
||||
margin-bottom: .1em;
|
||||
}
|
||||
|
||||
.project-link {
|
||||
&:link {
|
||||
text-decoration: none;
|
||||
}
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
.down-triangle {
|
||||
// fill: blue;
|
||||
height: 1.2em;
|
||||
position: relative;
|
||||
top: -3px;
|
||||
left: -3px;
|
||||
}
|
||||
|
||||
.btn {// {{{
|
||||
display: inline;
|
||||
background-color: transparent;
|
||||
margin-bottom: 5px;
|
||||
padding-left: 7px;
|
||||
|
||||
&:focus, &:active {
|
||||
outline: none !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
// }}}
|
||||
|
||||
// [id^="details-"] {
|
||||
// margin-top: .5em;
|
||||
// }
|
||||
}
|
||||
}// }}}
|
||||
|
||||
.institution {
|
||||
color: $base-yellow;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
#education {// {{{
|
||||
.date {
|
||||
padding-top: 0;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 14px;
|
||||
// // font-size: 1em;
|
||||
// }
|
||||
|
||||
&.letter {
|
||||
margin-top: 2em;
|
||||
line-height: 1.5em;
|
||||
|
||||
img {
|
||||
height: 4.5em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: $base-red;
|
||||
margin-top: 0em;
|
||||
margin-bottom: .4em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.no-line-spacing {
|
||||
line-height: .5em;
|
||||
margin-bottom: 1.75em;
|
||||
p {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}// }}}
|
||||
|
||||
#server {// {{{
|
||||
.body {
|
||||
@include vert-padding-rem(.5);
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-bottom: .25em;
|
||||
}
|
||||
|
||||
// table {
|
||||
// margin-top: 1.75em;
|
||||
// }
|
||||
|
||||
th, td {
|
||||
@include vert-padding-rem(.4);
|
||||
@include side-padding-rem(.5);
|
||||
border: 1px solid rgba(160, 159, 147, .5);
|
||||
}
|
||||
|
||||
th {
|
||||
color: $base-orange;
|
||||
text-align: center;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: $base-yellow;
|
||||
display: inline;
|
||||
td {
|
||||
font-size: .9em;
|
||||
|
||||
}
|
||||
|
||||
p {
|
||||
&.project-date {
|
||||
float: right;
|
||||
.description {
|
||||
font-size: .85em;
|
||||
}
|
||||
|
||||
.status {
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
height: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#time-info {
|
||||
padding-top: 1em;
|
||||
font-size: .75em;
|
||||
font-style: italic;
|
||||
color: $base03;
|
||||
}
|
||||
}// }}}
|
||||
|
||||
// TODO: converted up to here
|
||||
|
||||
@@ -438,32 +761,40 @@ footer {// {{{
|
||||
|
||||
h1.site-title {// {{{
|
||||
text-align: center;
|
||||
/* font-size: 3.5em; */
|
||||
font-size: 4.8em;
|
||||
// font-size: 4.2em;
|
||||
font-size: 3.2em;
|
||||
// color: #66cccc;
|
||||
color: $base05;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.5rem;
|
||||
// margin-top: 1rem;
|
||||
// margin-bottom: 0.75rem;
|
||||
@include vert-margin-rem(.75);
|
||||
|
||||
@include a-color($base-sky-blue);
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
font-size: 3em;
|
||||
}
|
||||
|
||||
@media (max-width: $phone-width) {
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 3em;
|
||||
// font-size: 2.5em;
|
||||
font-size: 2em;
|
||||
}
|
||||
// }
|
||||
|
||||
// @media (max-width: $phone-width) {
|
||||
// font-size: 3.5em;
|
||||
// @include vert-margin-rem(.3);
|
||||
// // font-size: 2.5em;
|
||||
// // font-size: 2em;
|
||||
|
||||
// .surrounding {
|
||||
// display: none;
|
||||
// }
|
||||
// }
|
||||
}// }}}
|
||||
|
||||
.hero-logo img {
|
||||
margin-top: 0.5rem;
|
||||
width: 100%;
|
||||
// display: none;
|
||||
// width: $max-page-width;
|
||||
}
|
||||
|
||||
.nav-bar {// {{{
|
||||
@@ -543,42 +874,42 @@ h1.site-title {// {{{
|
||||
// article.single {{{ //
|
||||
|
||||
article.single {
|
||||
.meta {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
margin-top: .5rem;
|
||||
margin-bottom: .5rem;
|
||||
.meta {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
margin-top: .5rem;
|
||||
margin-bottom: .5rem;
|
||||
|
||||
.key {
|
||||
color: #747369;
|
||||
}
|
||||
.key {
|
||||
color: #747369;
|
||||
}
|
||||
|
||||
.val {
|
||||
.val {
|
||||
color: #cc99cc;
|
||||
|
||||
a {
|
||||
color: #cc99cc;
|
||||
|
||||
a {
|
||||
color: #cc99cc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.body {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 3rem;
|
||||
}
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
.meta {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.body {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 3rem;
|
||||
padding-top: .5rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
.meta {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.body {
|
||||
padding-top: .5rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -590,6 +921,7 @@ article.single h1.headline {
|
||||
|
||||
@media (max-width: $max-page-width) {
|
||||
article.single h1.headline {
|
||||
font-size: 2em;
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
@@ -604,7 +936,8 @@ article.single section.body h4 { color: #f2777a; }
|
||||
article.single section.body h5 { color: #515151; }
|
||||
article.single section.body h6 { color: #747369; }
|
||||
|
||||
article.single section.body a,a:visited { color: #a06700; }
|
||||
// article.single section.body a,a:visited { color: #a06700; }
|
||||
article.single section.body a,a:visited { color: $base-sky-blue; }
|
||||
|
||||
/* Article Elements */
|
||||
|
||||
|
||||
32
config.yaml
@@ -1,5 +1,5 @@
|
||||
# baseURL: http://localhost:1313/
|
||||
baseURL: https://kevin-mok.com/
|
||||
baseURL: http://localhost:1313/
|
||||
# baseURL: https://kevin-mok.com/
|
||||
# baseURL: /home/kevin/coding/mf-site/public
|
||||
languageCode: en-us
|
||||
# title: Kevin Mok's Website
|
||||
@@ -16,13 +16,33 @@ menu:
|
||||
main:
|
||||
- name: resume
|
||||
url: /resume
|
||||
weight: 5
|
||||
weight: 1
|
||||
# - name: posts/
|
||||
# url: /posts
|
||||
# weight: 6
|
||||
- name: server
|
||||
url: /server
|
||||
weight: 7
|
||||
- name: config
|
||||
url: /config
|
||||
weight: 10
|
||||
- name: card
|
||||
url: /card
|
||||
weight: 15
|
||||
# - name: letter
|
||||
# url: /letter
|
||||
# weight: 17
|
||||
# - name: credits
|
||||
# url: /credits
|
||||
# weight: 10
|
||||
# - name: config
|
||||
# url: /config
|
||||
# weight: 20
|
||||
|
||||
# blackfriday:
|
||||
# plainIDAnchors: true
|
||||
# hrefTargetBlank: true
|
||||
|
||||
disableKinds: ["RSS"]
|
||||
|
||||
markup:
|
||||
goldmark:
|
||||
renderer:
|
||||
unsafe: true
|
||||
|
||||
5
content/card/_index.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: "Digital Card"
|
||||
date: 2019-02-11T07:50:51-05:00
|
||||
draft: false
|
||||
---
|
||||
@@ -1,27 +1,29 @@
|
||||
---
|
||||
title: "Config"
|
||||
date: 2019-02-07T05:05:11-05:00
|
||||
draft: true
|
||||
title: "Linux Config"
|
||||
date: 2019-04-26
|
||||
draft: false
|
||||
layout: single
|
||||
---
|
||||
<!--- Intro {{{ -->
|
||||
# Kevin's Linux Setup
|
||||
|
||||

|
||||

|
||||
*Screenshot from my dual-monitor setup.*
|
||||
|
||||
This repository contains the dotfiles to increase my workflow efficiency. They
|
||||
are also for my Linux
|
||||
[rice](https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/cukxwog/).
|
||||
This [repository][lc-repo] contains the dotfiles to increase my workflow
|
||||
efficiency. They are also for my Linux [rice][ricing_explanation].
|
||||
|
||||
[lc-repo]: https://git.kevin-mok.com/Kevin-Mok/linux-config
|
||||
[ricing_explanation]: https://www.reddit.com/r/unixporn/comments/3iy3wd/stupid_question_what_is_ricing/cukxwog/
|
||||
<!--- }}} Intro -->
|
||||
|
||||
<!--- Main Programs {{{ -->
|
||||
## Main Programs
|
||||
* **OS**: [Arch Linux](https://www.archlinux.org/) ([packages](txt/nzxt-pkgs.txt))
|
||||
```
|
||||
> systemd-analyze
|
||||
Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s
|
||||
graphical.target reached after 1.085s in userspace
|
||||
```
|
||||
```
|
||||
$ systemd-analyze
|
||||
Startup finished in 2.341s (kernel) + 1.085s (userspace) = 3.426s
|
||||
graphical.target reached after 1.085s in userspace
|
||||
```
|
||||
* **Terminal**: [rxvt-unicode-pixbuf](https://www.wikiwand.com/en/Rxvt)
|
||||
* **Shell**: [Zsh](http://zsh.sourceforge.net/) + [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh)
|
||||
* **Window Manager**: [i3-gaps](https://github.com/Airblader/i3)
|
||||
@@ -32,8 +34,9 @@ graphical.target reached after 1.085s in userspace
|
||||
<!--- Setup {{{ -->
|
||||
|
||||
## Setup
|
||||
I use
|
||||
[Stow](http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html)
|
||||
to symbolically link the configs/dotfiles.
|
||||
I use [chezmoi] to manage varying configs for different machines with
|
||||
a single branch.
|
||||
|
||||
[chezmoi]: https://github.com/twpayne/chezmoi
|
||||
|
||||
<!--- }}} Setup -->
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
---
|
||||
title: "Credits"
|
||||
date: 2019-02-11T03:10:25-05:00
|
||||
draft: true
|
||||
---
|
||||
1
content/letter
Submodule
@@ -1,4 +1,7 @@
|
||||
---
|
||||
title: "Outage Night"
|
||||
date: 2019-02-11T07:50:51-05:00
|
||||
draft: true
|
||||
---
|
||||
- procrastinating on assignment
|
||||
- want to play Pokemon randomizer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
title: Wallpaper Playlist for pywal
|
||||
date: 2019-02-16T11:42:33-05:00
|
||||
draft: false
|
||||
draft: true
|
||||
---
|
||||
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
||||
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
|
||||
|
||||
@@ -3,77 +3,100 @@ title: "Resume"
|
||||
date: 2019-02-11T07:50:51-05:00
|
||||
draft: false
|
||||
---
|
||||
{{% resume/section goal %}}<!--- {{{ -->
|
||||
{{% resume/section "Work Experience" %}}<!--- {{{ -->
|
||||
|
||||
To find an internship to fully dedicate myself that will test my limits,
|
||||
provide the opportunity to gain valuable knowledge and experience and
|
||||
jumpstart my career with a solid foundation.
|
||||
{{% resume/education name="Red Hat"
|
||||
title="Cloud/Software Engineer Intern" date="May 2020 — Aug 2021" %}}
|
||||
- Reduced deployment time by **66%** by implementing ability to
|
||||
deploy locally-compiled binaries onto **Kubernetes**/**OpenShift**
|
||||
using only command-line.
|
||||
- Implemented ability for Kubernetes operator to fetch data
|
||||
from a deployed service and update config with data.
|
||||
- Added startup probes to handle starting legacy application containers that require additional startup time.
|
||||
- Refactored probes to have default values assigned based on
|
||||
deployed YAML while also fixing reconciliation issues.
|
||||
- Automated the promotion and release process
|
||||
as part of the **Jenkins** release pipeline.
|
||||
- Wrote documentation on how to get started with the project to onboard new
|
||||
developers and mentored the incoming intern.
|
||||
|
||||
<!--- }}} -->
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
{{% resume/section projects %}}<!--- {{{ -->
|
||||
|
||||
<!--- Spotify Graphs {{{ -->
|
||||
|
||||
{{< resume/project-header name="Spotify Visualizer" url="https://github.com/Kevin-Mok/spotify-lib-vis" date="July 2018" >}}
|
||||
<!--- CSC369 {{{ -->
|
||||
|
||||
{{% resume/project-details %}}
|
||||
{{% resume/project name="Custom Kernel Module"
|
||||
url="https://kevin-mok.com/server/" date="Jan. 2022" show="true" %}}
|
||||
|
||||
- Web app that scans your Spotify library using their API to produce [d3
|
||||
graphs][d3 graph examples] to visualize the artists, genres and features
|
||||
of tracks in your library.
|
||||
- Can also keep track of your listening history. Currently runs as a `cron`
|
||||
job on my local machine to keep track of my own.
|
||||
- Uses Django and PostgreSQL for back-end.
|
||||
- Wrote and installed a [custom Linux kernel module](https://github.com/Kevin-Mok/interceptor-kernel/blob/master/a1/interceptor.c) in **C**.
|
||||
- Intercepted pre-existing system calls using
|
||||
custom kernel module by sending commands to
|
||||
userspace.
|
||||
- Monitored specific process ID's in my system
|
||||
call to intercept their system calls.
|
||||
|
||||
[d3 graph examples]: https://github.com/d3/d3/wiki/Gallery
|
||||
{{% /resume/project %}}
|
||||
|
||||
{{% /resume/project-details %}}
|
||||
<!--- CSC369 }}} -->
|
||||
|
||||
<!--- Spotify Graphs }}} -->
|
||||
<!--- DigitalOcean {{{ -->
|
||||
|
||||
<!--- ParsaFood {{{ -->
|
||||
{{% resume/project name="Personal Server"
|
||||
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" show="true" %}}
|
||||
|
||||
{{< resume/project-header name="ParsaFood" url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018" >}}
|
||||
- Deployed [various web apps] with backends using NGINX on a Debian/**Linux** server.
|
||||
- Wrote a [**JavaScript** script][server script] and [systemd service][systemd service]/[timer]
|
||||
to display the uptime of my pages every hour.
|
||||
- Monitored system resources and performed system maintenance using tmux.
|
||||
|
||||
{{% resume/project-details %}}
|
||||
- Android app that reads ingredients labels and detects any dietary
|
||||
restrictions/allergies. Came up with the idea based on
|
||||
[personal experience][Parsafood motivation].
|
||||
- Made during the 24-hour [Platterz Hackathon][Platterz Hackathon event] in
|
||||
a group with two other members. Came in 2nd place and won an
|
||||
[Oculus Rift][Oculus Rift Amazon].
|
||||
[various web apps]: https://kevin-mok.com/server/
|
||||
[server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js
|
||||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service
|
||||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
|
||||
|
||||
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
|
||||
[Parsafood motivation]: https://github.com/Kevin-Mok/ParsaFood#motivation
|
||||
[Platterz Hackathon event]: https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722
|
||||
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1
|
||||
{{% /resume/project-details %}}
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- ParsaFood }}} -->
|
||||
<!--- DigitalOcean Droplet }}} -->
|
||||
|
||||
<!--- Grocery Finder {{{ -->
|
||||
<!--- Rarity Surf {{{ -->
|
||||
|
||||
{{< resume/project-header name="Grocery Finder" url="https://github.com/Kevin-Mok/grocery-finder" date="April 2019" >}}
|
||||
{{% resume/project name="Rarity Surf"
|
||||
date="Oct 2021" show="true" %}}
|
||||
|
||||
{{% resume/project-details %}}
|
||||
- Proof of concept for a web app that finds the best supermarket for your needs.
|
||||
- Took on role as project leader to prioritize and delegate tasks while
|
||||
also implementing a majority of the core features.
|
||||
- Responsive front-end using Bootstrap. Uses Node.js and MongoDB for back-end.
|
||||
- Currently deployed on [Heroku][Grocery Finder Heroku].
|
||||
- Web app to give rarity rankings to NFT's within minutes of their metadata being revealed and check which are listed (based on rarity and price filters) on the OpenSea marketplace using their API.
|
||||
- Reverse engineered the ranking algorithm to match the
|
||||
leading rarity ranking site's rankings (scraped using
|
||||
Selenium) with a **discrepancy of <0.25%**.
|
||||
- Used app to frontrun purchases of **top 5%** rarity NFT's
|
||||
against competing buyers.
|
||||
- Wrote **Django (Python)** backend to fetch metadata from IPFS, store rarity rankings in PostgreSQL and serve rarity data using GraphQL.
|
||||
- Wrote **React** frontend with hooks to dynamically load rarity data. Styled with Tailwind.
|
||||
|
||||
[Grocery Finder Heroku]: http://www.grocery-finder.ml
|
||||
{{% /resume/project %}}
|
||||
|
||||
{{% /resume/project-details %}}
|
||||
<!--- Rarity Surf }}} -->
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
<!--- Grocery Finder }}} -->
|
||||
{{% resume/section skills %}}<!--- {{{ -->
|
||||
|
||||
Kubernetes, **JavaScript**, **React**, **Python**, Go, Bash, Solidity, C, **Django**, Node.js, Jenkins, PostgreSQL, **Linux**, **Git**, **Command Line**
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
{{% resume/section education %}}<!--- {{{ -->
|
||||
|
||||
- **University of Toronto**: Computer Science Specialist <div style="float:right">2017-2021</div>
|
||||
{{% resume/education name="University of Toronto"
|
||||
title="Computer Science Specialist — 3.84 GPA (CS). Graduated with High Distinction." date="2018 — 2023" %}}
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
{{% resume/section "References" %}}<!--- {{{ -->
|
||||
|
||||
{{% resume/references %}}
|
||||
|
||||
{{% /resume/section %}}<!--- }}} -->
|
||||
|
||||
<!-- vim: fdm=marker -->
|
||||
|
||||
82
content/resume/old.txt
Normal file
@@ -0,0 +1,82 @@
|
||||
<!--- Spotify Graphs {{{ -->
|
||||
|
||||
{{% resume/project name="Spotify Graphs"
|
||||
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018"
|
||||
show="true" %}}
|
||||
|
||||
- Implemented base functionality of scanning tracks and listening
|
||||
history from user's library using Spotify API and organized data
|
||||
into **PostgreSQL** database with **Django** backend.
|
||||
- Created and tested various relational database schemas to maximize
|
||||
efficiency for use cases.
|
||||
- Produced bubble chart and (stacked) bar chart using [**d3**]
|
||||
[d3 graph examples] to visualize the artists, genres and features of
|
||||
tracks in library.
|
||||
|
||||
[d3 graph examples]: https://github.com/d3/d3/wiki/Gallery
|
||||
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- Spotify Graphs }}} -->
|
||||
|
||||
<!--- Grocery Finder {{{ -->
|
||||
|
||||
{{% resume/project name="Grocery Finder"
|
||||
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019"
|
||||
show="true" %}}
|
||||
|
||||
- Proof of concept for web app that finds the ideal supermarket based on your cart.
|
||||
- Designed responsive front-end layout using **Bootstrap**.
|
||||
- Implemented REST API functionality on backend using **Node.js** and
|
||||
**MongoDB**.
|
||||
- Setup deployment on [**Heroku**][Grocery Finder Heroku].
|
||||
- Led team of 4 as project leader to prioritize and delegate tasks while
|
||||
also implementing a majority of the core features.
|
||||
- Performed code review for team members' pull requests.
|
||||
|
||||
[Grocery Finder Heroku]: http://www.grocery-finder.ml
|
||||
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- Grocery Finder }}} -->
|
||||
|
||||
<!--- DigitalOcean {{{ -->
|
||||
|
||||
{{% resume/project name="Personal Server"
|
||||
url="https://kevin-mok.com/server/" date="Aug. 2019 — present" %}}
|
||||
|
||||
- Deployed various web apps with backends such as Node, PHP and Python using
|
||||
**NGINX** on a **Debian** server.
|
||||
- Monitor system resources and perform system maintenance using tmux.
|
||||
- Wrote [**Node.js** script][server script] and [**systemd** service][systemd service]/[timer]
|
||||
to check and display the uptime of my pages every hour.
|
||||
|
||||
[server script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js
|
||||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service
|
||||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
|
||||
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- DigitalOcean Droplet }}} -->
|
||||
|
||||
<!--- ParsaFood {{{ -->
|
||||
|
||||
{{% resume/project name="ParsaFood"
|
||||
url="https://github.com/Kevin-Mok/ParsaFood" date="Feb. 2018"
|
||||
show="true" %}}
|
||||
|
||||
- **Android** app that reads ingredient labels and detects any dietary
|
||||
restrictions/allergies.
|
||||
- Designed user interface and linked various functionality together.
|
||||
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event]
|
||||
in a group with two other members. Came in 2<sup>nd</sup> place and won
|
||||
an [Oculus Rift][Oculus Rift Amazon].
|
||||
|
||||
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
|
||||
[Platterz Hackathon event]:
|
||||
https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722
|
||||
[Oculus Rift Amazon]: https://www.amazon.ca/Oculus-Rift-Windows-VR-Headset/dp/B00VF0IXEY/ref=sr_1_1_sspa?ie=UTF8&qid=1520422949&sr=8-1-spons&keywords=oculus+rift&psc=1
|
||||
|
||||
{{% /resume/project %}}
|
||||
|
||||
<!--- ParsaFood }}} -->
|
||||
4
content/resume/printable.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
- bg colors
|
||||
- site title max width
|
||||
- switch project shortcode
|
||||
- rm details top margin
|
||||
9
content/resume/red-hat.txt
Normal file
@@ -0,0 +1,9 @@
|
||||
• Working on the Kogito (cloud-native, open-source business automation technology) Cloud Engineering team.
|
||||
• Implemented ability for Kogito operator to fetch exposed protobuf files from a deployed service and update ConfigMap with data (*Kubernetes*, *Go*, KOGITO-3376).
|
||||
• Reduced deployment time by 66% by implementing ability to deploy locally-compiled Kogito binaries onto OpenShift using only Kogito CLI (*Go*, KOGITO-2113).
|
||||
• Added startup probes to handle starting legacy application containers that require additional startup time
|
||||
(*Go*, KOGITO-4322).
|
||||
• Refactored Kogito probes to have default values assigned based on deployed YAML/runtime while also fixing reconciliation issues (*Kubernetes*, *Go*, KOGITO-4898).
|
||||
• Automated the promotion and release process for Kogito runtimes as part of the release pipeline (*Jenkins*, KOGITO-1653). Wrote unit tests in the Spock framework.
|
||||
• Wrote documentation to onboard new Kogito operator developers and reduce friction needed for them to start contributing (*Kubernetes/minikube/OpenShift*, KOGITO-5127). Was completed as part of mentoring incoming intern to expedite initial onboarding process.
|
||||
• Presented a talk based on my experience called "8 Things I Learned About Software Engineering" to an audience of 75+ in a conference for internship seekers.
|
||||
20
content/resume/server-ideas.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# To-Do
|
||||
- install Docker
|
||||
- run Docker apps on it
|
||||
- run domain
|
||||
- run/create Docker compose
|
||||
- Dockerize app
|
||||
|
||||
# Done
|
||||
- setup AWS server
|
||||
|
||||
# Points
|
||||
- run/deploy K8s locally on minikube using kubectl
|
||||
- features
|
||||
- Dockerize app
|
||||
- run Docker on server (AWS)
|
||||
|
||||
# Replace
|
||||
- personal server
|
||||
- Astronofy
|
||||
- check price of AWS server
|
||||
16
content/server/_index.md
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
title: "Server Apps"
|
||||
date: 2019-09-22
|
||||
draft: false
|
||||
layout: single
|
||||
js: ["server-table"]
|
||||
---
|
||||
Here is a list of apps that I am running on my [DigitalOcean
|
||||
droplet][do-droplet]. Their [statuses] are updated every hour using a
|
||||
[Node.js script][update-script] and a [systemd service]/[timer].
|
||||
|
||||
[do-droplet]: https://www.digitalocean.com/products/droplets/
|
||||
[statuses]: https://kevin-mok.com/server-apps.json
|
||||
[systemd service]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.service
|
||||
[timer]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-pages.timer
|
||||
[update-script]: https://git.kevin-mok.com/Kevin-Mok/server-pages/src/branch/master/server-status.js
|
||||
37
ideas.md
@@ -4,28 +4,15 @@
|
||||
- spv
|
||||
- screenshots
|
||||
- setup instructions
|
||||
- see if SoundCloud API still bad (TrapBot)
|
||||
- open SoundCloud issue about API
|
||||
- ADA vid/pics
|
||||
- lc setup
|
||||
- image tagger?
|
||||
- image tagger
|
||||
- executable
|
||||
- date on same line as project
|
||||
- collapsible sections
|
||||
- link to each section beside it
|
||||
- fix title
|
||||
- collapsible sections
|
||||
- more
|
||||
- printable version
|
||||
- JS to change CSS
|
||||
- list of things done with diff. langs.
|
||||
- add CSS grid layout
|
||||
- add tooltip saying responsive
|
||||
- articles (ideas)
|
||||
- screenshots gallery
|
||||
- infinite scroll
|
||||
|
||||
- loop through URL sections
|
||||
- ask about most efficient way for custom layout for each section
|
||||
- JS snippets?
|
||||
- rewrite CSS in Sass
|
||||
- push to base16 repo
|
||||
@@ -33,19 +20,20 @@
|
||||
- cd/ls diff. pages
|
||||
|
||||
# Medium
|
||||
- socials in footer
|
||||
- contact page
|
||||
- icons
|
||||
- email
|
||||
- tooltip pop-up with email and clipboard button/link
|
||||
- [Pure CSS Tooltips](https://www.youtube.com/watch?v=hAeQ8CqrGDY)
|
||||
- use position element
|
||||
- [Copying Text to Clipboard in HTML & JavaScript](https://www.youtube.com/watch?v=NHg6jQajaMs)
|
||||
- [Native Browser Copy To Clipboard](https://css-tricks.com/native-browser-copy-clipboard/)
|
||||
- Gitea
|
||||
- GitHub
|
||||
- email
|
||||
- copy button
|
||||
- [Copying Text to Clipboard in HTML & JavaScript](https://www.youtube.com/watch?v=NHg6jQajaMs)
|
||||
- [Native Browser Copy To Clipboard](https://css-tricks.com/native-browser-copy-clipboard/)
|
||||
- Fosstodon
|
||||
- pages
|
||||
- fav. apps
|
||||
- linux config
|
||||
- neofetch on all devices
|
||||
- credits
|
||||
- contact?
|
||||
- site stats
|
||||
- size
|
||||
- load time
|
||||
@@ -57,9 +45,6 @@
|
||||
- create different size images for SVG
|
||||
- https://www.sitepoint.com/svg-good-for-website-performance/
|
||||
|
||||
Break> {{{
|
||||
> }}}
|
||||
|
||||
## Archived
|
||||
- about/homepage
|
||||
- typing animation
|
||||
|
||||
69
layouts/card/section.html
Normal file
@@ -0,0 +1,69 @@
|
||||
{{ partial "base/header.html" . }}
|
||||
|
||||
{{ partial "base/site-title.html" . }}
|
||||
|
||||
{{ partial "base/nav-bar.html" . }}
|
||||
|
||||
{{ partial "base/base16-logo.html" . }}
|
||||
|
||||
<main role="main" id="card">
|
||||
<div id="presentational-container" class="container">
|
||||
<div class="row text-center h-100 my-auto">
|
||||
<div id="email-full" class="h-100 mx-auto">
|
||||
<p class="text-center">
|
||||
<nobr>
|
||||
me@kevin-mok.com
|
||||
<span class="social"><span class="spacing">
|
||||
me</span><span class="link-text">@kevi<span
|
||||
class="safari">n</span>
|
||||
<a href="https://fosstodon.org/@Kevin"
|
||||
target="_blank" id="mastodon" class="link link-top">
|
||||
<img src="https://kevin-mok.com/img/social/mastodon.svg" alt=""/>
|
||||
</a></span>
|
||||
</span>
|
||||
<span class="social"><span class="spacing">
|
||||
me@</span><span class="link-text">ke<span
|
||||
class="safari">v</span>
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank"
|
||||
target="_blank" class="link linkedin linkedin-left">
|
||||
<img src="https://kevin-mok.com/img/social/linkedin.svg" alt=""/>
|
||||
</a></span>
|
||||
</span>
|
||||
<span class="social"><span class="spacing">
|
||||
me@kevin</span><span class="link-text">-mo<span
|
||||
class="safari">k</span>
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank" class="link linkedin linkedin-left"></a></span>
|
||||
</span>
|
||||
<span class="social"><span class="spacing">
|
||||
me@kev</span><span class="link-text">i<span
|
||||
class="safari">n</span>
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank"
|
||||
class="link linkedin linkedin-middle"></a></span>
|
||||
</span>
|
||||
<span class="social"><span class="spacing">
|
||||
me@</span><span class="link-text">kevin-mo<span
|
||||
class="safari">k</span>
|
||||
<a href="https://github.com/Kevin-Mok" target="_blank" id="github" class="link">
|
||||
<img src="https://kevin-mok.com/img/social/github.svg" alt=""/>
|
||||
</a></span>
|
||||
</span>
|
||||
<span class="social"><span class="spacing">
|
||||
me@</span><span class="link-text">kevin-mok.co<span
|
||||
class="safari">m</span>
|
||||
<a href="https://kevin-mok.com/" target="_blank" id="site" class="link">
|
||||
<img src="https://kevin-mok.com/img/resume/link.svg" alt=""/>
|
||||
</a></span>
|
||||
</span>
|
||||
<span class="social"><span class="link-text">me@kevin-mok.co<span class="safari"> </span>
|
||||
<a href="mailto:me@kevin-mok.com" target="_blank" id="email" class="link link-top">
|
||||
<img src="https://kevin-mok.com/img/resume/envelope.svg" alt=""/>
|
||||
</a></span>
|
||||
</span>
|
||||
</nobr>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "base/footer.html" . }}
|
||||
22
layouts/letter/section.html
Normal file
@@ -0,0 +1,22 @@
|
||||
{{ partial "base/header.html" . }}
|
||||
|
||||
{{ partial "base/site-title.html" . }}
|
||||
|
||||
{{ partial "base/nav-bar.html" . }}
|
||||
|
||||
{{ partial "base/base16-logo.html" . }}
|
||||
|
||||
<main role="main" id="letter-home">
|
||||
<!-- <h1 class="list-title">{{ .Title }}</h1> -->
|
||||
<h4 id="letter-instr">Please enter the full URL that I provided
|
||||
for your personalized cover letter. :)</h4>
|
||||
|
||||
<div id="resume" class="letter">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "base/footer.html" . }}
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
13
layouts/letter/single.html
Normal file
@@ -0,0 +1,13 @@
|
||||
{{ partial "base/header.html" . }}
|
||||
|
||||
{{ partial "base/site-title.html" . }}
|
||||
|
||||
{{ partial "resume/contact-info.html" . }}
|
||||
|
||||
<div id="resume" class="letter">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,17 +1,55 @@
|
||||
</div>
|
||||
|
||||
{{- range .Params.js }}
|
||||
<script src="/{{ . }}.js"></script>
|
||||
{{- end }}
|
||||
|
||||
<footer>
|
||||
<div class="container">
|
||||
<!-- <span class="copyright">© {{ .Site.LastChange.Year }} {{ .Site.Title }} - <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></span> -->
|
||||
<span class="copyright">
|
||||
© {{ now.Year }} {{ .Site.Title }} · <a rel="license"
|
||||
href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> ·
|
||||
<a href="{{ "credits" | relURL }}">Credits</a>
|
||||
</span>
|
||||
<div id="footer-row" class="row justify-content-center">
|
||||
<span id="footer-content" class="name">
|
||||
<span id="copyright" class="col-xs-6">
|
||||
© {{ now.Year }} {{ .Site.Title }} ·
|
||||
<!-- <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> · -->
|
||||
<!-- <a href="{{ "credits" | relURL }}">Credits</a> · -->
|
||||
</span>
|
||||
<span id="social-icons" class="col-xs-4">
|
||||
<a href="https://github.com/Kevin-Mok" target="_blank">
|
||||
<img src="{{ "img/social/github.svg" | relURL }}"
|
||||
alt="github-logo">
|
||||
</a>
|
||||
<a href="https://git.kevin-mok.com/" target="_blank">
|
||||
<img src="{{ "img/social/gitea.svg" | relURL }}" alt="gitea-logo">
|
||||
</a>
|
||||
·
|
||||
<a href="https://twitter.com/Kev_Mok" target="_blank">
|
||||
<img src="{{ "img/social/twitter.svg" | relURL }}"
|
||||
alt="twitter-logo">
|
||||
</a>
|
||||
<a rel="me" href="https://fosstodon.org/@Kevin" target="_blank">
|
||||
<img src="{{ "img/social/mastodon.svg" | relURL }}"
|
||||
alt="mastodon-logo">
|
||||
</a>
|
||||
<a href="https://www.reddit.com/u/Kevin-Mok" target="_blank">
|
||||
<img src="{{ "img/social/reddit.svg" | relURL }}"
|
||||
alt="reddit-logo">
|
||||
</a>
|
||||
.
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
|
||||
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-logo">
|
||||
</a>
|
||||
<a href="mailto:me@kevin-mok.com" target="_blank">
|
||||
<img src="{{ "img/social/email.svg" | relURL }}"
|
||||
alt="envelope">
|
||||
</a>
|
||||
</span>
|
||||
<span class="col-xs-2">
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</footer>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -9,14 +9,18 @@
|
||||
{{- with $.Param "author" }}
|
||||
<meta name="author" content="{{ . }}">
|
||||
{{- end }}
|
||||
{{ .Hugo.Generator }}
|
||||
{{ hugo.Generator }}
|
||||
<meta name="google-site-verification" content="3aZhrY5bFgQY0HY2DNNUhbkuIfVEcwkrQHnbJd8jCCQ" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<script src="http://livejs.com/live.js" charset="utf-8"></script>
|
||||
<!-- <script src="https://cdn.khkm.gq/live.js" charset="utf-8"></script> -->
|
||||
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
|
||||
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
|
||||
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
|
||||
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro:400,700" type="text/css"> -->
|
||||
<link rel='stylesheet' href='//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack-subset.css'>
|
||||
<!-- <link rel='stylesheet' href='//cdn.jsdelivr.net/npm/hack-font@3.3.0/build/web/hack-subset.css'> -->
|
||||
<!-- <link rel="stylesheet" href="https://meyerweb.com/eric/tools/css/reset/reset.css" type="text/css" media="all" /> -->
|
||||
<!-- <link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css"> -->
|
||||
<link rel="stylesheet" href="{{ "css/style.css" | relURL }}" type="text/css">
|
||||
{{ $main_sass := resources.Get "sass/main.scss" }}
|
||||
{{ $main_style := $main_sass | resources.ToCSS }}
|
||||
<link rel="stylesheet" href="{{ $main_style.RelPermalink }}" type="text/css">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<h1 class="site-title">
|
||||
[<a href="{{ .Site.BaseURL }}"><span class="base08">K</span><span
|
||||
<span class="surrounding">[</span><a href="{{ .Site.BaseURL }}"><span class="base08">K</span><span
|
||||
class="base0f">e</span><span class="base09">v</span><span
|
||||
class="base0a">i</span><span class="base0b">n </span><span
|
||||
class="base0c">M</span><span class="base0d">o</span><span
|
||||
class="base0e">k</span></a>] # _
|
||||
class="base0e">k</span></a><span class="surrounding">] # _</span>
|
||||
</h1>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div id="about">
|
||||
<h2>Welcome to my site!</h2>
|
||||
<p>
|
||||
I'm Kevin Mok - a 2<sup>nd</sup> year Computer Science
|
||||
I'm Kevin Mok - a Computer Science
|
||||
student at the University of Toronto, and I'm greatly interested in all things Linux and
|
||||
<a href="https://www.gnu.org/philosophy/floss-and-foss.en.html"
|
||||
target="_blank">FOSS/FLOSS</a>.
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
<div class="me-equation">
|
||||
<div class="equation-part">
|
||||
<a href="https://www.gnu.org/" target="_blank">
|
||||
<img src="{{ "img/gnu.svg" | relURL }}" id="gnu" alt="gnu-logo">
|
||||
<img src="{{ "img/home/gnu.svg" | relURL }}" id="gnu" alt="gnu-logo">
|
||||
</a>
|
||||
<p>+</p>
|
||||
</div>
|
||||
<div class="equation-part">
|
||||
<a href="https://www.wikiwand.com/en/Arch_Linux" target="_blank">
|
||||
<img src="{{ "img/arch.svg" | relURL }}" alt="linux-logo">
|
||||
<!-- <img src="{{ "img/larbs.png" | relURL }}" alt="linux-logo"> -->
|
||||
<img src="{{ "img/home/arch.svg" | relURL }}" alt="linux-logo">
|
||||
<!-- <img src="{{ "img/home/larbs.png" | relURL }}" alt="linux-logo"> -->
|
||||
</a>
|
||||
<p>+</p>
|
||||
</div>
|
||||
<div class="equation-part" id="uoft-part">
|
||||
<a href="https://www.utoronto.ca/" target="_blank">
|
||||
<img src="{{ "img/uoft-logo.svg" | relURL }}" alt="uoft-logo">
|
||||
<img src="{{ "img/home/uoft-logo.svg" | relURL }}" alt="uoft-logo">
|
||||
</a>
|
||||
<p>=</p>
|
||||
</div>
|
||||
<div class="equation-part">
|
||||
<img src="{{ "img/hexatar.png" | relURL }}" id="hexatar" alt="my-avatar">
|
||||
<img src="{{ "img/home/hexatar.png" | relURL }}" id="hexatar" alt="my-avatar">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
39
layouts/partials/resume/contact-info.html
Normal file
@@ -0,0 +1,39 @@
|
||||
<div id="contact-info" class="container">
|
||||
<div class="row row-top justify-content-center mx-auto">
|
||||
<div id="phone-number" class="col text-left">
|
||||
<a href="tel:647-685-2500" target="_blank">
|
||||
<img src="{{ "img/resume/smartphone.svg" | relURL }}"
|
||||
alt="smartphone-icon">
|
||||
<span class="url-info">
|
||||
647-685-2500
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="linkedin" class="col text-right">
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
|
||||
<span class="url-info">
|
||||
Kev-Mok
|
||||
</span>
|
||||
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-icon">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mx-auto">
|
||||
<div id="email" class="col col-left">
|
||||
<a href="mailto:me@kevin-mok.com" target="_blank">
|
||||
<img src="{{ "img/resume/envelope.svg" | relURL }}" alt="envelope-icon">
|
||||
<span class="url-info">
|
||||
me@kevin-mok.com
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="website" class="col text-right">
|
||||
<a href="https://kevin-mok.com/" target="_blank">
|
||||
<span class="url-info">
|
||||
kevin-mok.com
|
||||
</span>
|
||||
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
5
layouts/partials/resume/print-icon.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<div id="print-icon">
|
||||
<a href="{{ "pdf/kevin-mok-resume.pdf" | relURL }}" target="_blank">
|
||||
<img src="{{ "img/resume/printer.svg" | relURL }}" alt="printer-icon">
|
||||
</a>
|
||||
</div>
|
||||
@@ -1,8 +1,10 @@
|
||||
{{ partial "base/header.html" . }}
|
||||
|
||||
{{ partial "resume/print-icon.html" . }}
|
||||
|
||||
{{ partial "base/site-title.html" . }}
|
||||
|
||||
{{ partial "base/base16-logo.html" . }}
|
||||
{{ partial "resume/contact-info.html" . }}
|
||||
|
||||
<div id="resume">
|
||||
|
||||
|
||||
@@ -1,4 +1 @@
|
||||
User-agent: *
|
||||
|
||||
Allow: /$
|
||||
Disallow: /
|
||||
|
||||
20
layouts/server/single.html
Normal file
@@ -0,0 +1,20 @@
|
||||
{{ partial "base/header.html" . }}
|
||||
|
||||
{{ partial "base/site-title.html" . }}
|
||||
|
||||
{{ partial "base/nav-bar.html" . }}
|
||||
|
||||
{{ partial "base/base16-logo.html" . }}
|
||||
|
||||
<main role="main" id="server">
|
||||
{{ partial "base/article.html" . }}
|
||||
<table>
|
||||
</table>
|
||||
<div id="time-info">
|
||||
<!-- <p id="last-updated">Last updated: <span id="last-updated-time"></span></p> -->
|
||||
<!-- <p id="server-uptime">Server Uptime: <span id="server-uptime-time"></span></p> -->
|
||||
Last updated: <span id="last-updated-time"></span> Server Uptime: <span id="server-uptime-time">
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "base/footer.html" . }}
|
||||
14
layouts/shortcodes/resume/education.html
Normal file
@@ -0,0 +1,14 @@
|
||||
<div class="education">
|
||||
<div class="row">
|
||||
<div class="col-8 text-left">
|
||||
<p class="institution">
|
||||
{{ .Get "name" }}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col text-right date">{{ .Get "date" }}</div>
|
||||
</div>
|
||||
<!-- <span class="title"> -->
|
||||
<span>
|
||||
{{ .Get "title" }}
|
||||
</span>
|
||||
</div>
|
||||
8
layouts/shortcodes/resume/letter-print.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<div id="print-icon">
|
||||
{{ $type := .Get "type" }}
|
||||
{{ $code := .Get "code" }}
|
||||
{{ $pdfName := print "pdf/kevin-mok-" $type "-" $code ".pdf" }}
|
||||
<a href="{{ $pdfName | relURL }}" target="_blank">
|
||||
<img src="{{ "img/resume/printer.svg" | relURL }}" alt="printer-icon">
|
||||
</a>
|
||||
</div>
|
||||
4
layouts/shortcodes/resume/no-spacing.html
Normal file
@@ -0,0 +1,4 @@
|
||||
{{ $_hugo_config := `{ "version": 1 }` }}
|
||||
<div class="no-line-spacing">
|
||||
{{ .Inner }}
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
{{ $_hugo_config := `{ "version": 1 }` }}
|
||||
<div class="project-details">
|
||||
{{ .Inner | markdownify }}
|
||||
{{ .Inner }}
|
||||
</div>
|
||||
|
||||
13
layouts/shortcodes/resume/project-print.html
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="project">
|
||||
<h2 class="project-title">
|
||||
<a href="{{ .Get "url" }}" target="_blank">
|
||||
{{ .Get "name" }}
|
||||
</a>
|
||||
</h2>
|
||||
<div class="date">{{ .Get "date" }}</div>
|
||||
<div class="collapse show" id="details-{{ .Get "name" | lower | urlize }}">
|
||||
<div>
|
||||
{{ .Inner }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
23
layouts/shortcodes/resume/project.html
Normal file
@@ -0,0 +1,23 @@
|
||||
<div class="project">
|
||||
<div class="row project-header">
|
||||
<div class="col-8 text-left">
|
||||
<a class="project-link" href="{{ .Get "url" }}" target="_blank">
|
||||
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
|
||||
</a>
|
||||
<button class="btn" type="button" data-toggle="collapse"
|
||||
data-target="#{{ .Get "name" | lower | urlize }}-details"
|
||||
aria-expanded="false" aria-controls="{{ .Get "name" | lower | urlize }}-details">
|
||||
<h2 class="project-title">
|
||||
{{ .Get "name" }}
|
||||
<img class="down-triangle" src="{{ "img/resume/down-triangle.png" | relURL }}" alt="link-icon">
|
||||
</h2>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-4 text-right date">{{ .Get "date" }}</div>
|
||||
</div>
|
||||
<div class="collapse{{ with .Get "show" }} show{{ end }}" id="{{ .Get "name" | lower | urlize }}-details">
|
||||
<div>
|
||||
{{ .Inner }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
9
layouts/shortcodes/resume/references.html
Normal file
@@ -0,0 +1,9 @@
|
||||
<div class="references">
|
||||
<span>
|
||||
See my
|
||||
<a href="https://www.linkedin.com/in/Kev-Mok"
|
||||
target="_blank">
|
||||
LinkedIn</a> for references from my Red Hat managers/mentee and a
|
||||
startup client.
|
||||
</span>
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
<div id="{{ .Get 0 }}">
|
||||
<h1 class="section-header">{{ .Get 0 | title }}</h1>
|
||||
{{ .Inner }}
|
||||
{{ .Inner | markdownify }}
|
||||
</div>
|
||||
|
||||
21
layouts/sitemap.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
{{ range .Data.Pages }}{{ if ne .Params.sitemap_exclude true }}
|
||||
<url>
|
||||
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
|
||||
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
|
||||
<changefreq>{{ . }}</changefreq>{{ end }}{{ if ge .Sitemap.Priority 0.0 }}
|
||||
<priority>{{ .Sitemap.Priority }}</priority>{{ end }}{{ if .IsTranslated }}{{ range .Translations }}
|
||||
<xhtml:link
|
||||
rel="alternate"
|
||||
hreflang="{{ .Lang }}"
|
||||
href="{{ .Permalink }}"
|
||||
/>{{ end }}
|
||||
<xhtml:link
|
||||
rel="alternate"
|
||||
hreflang="{{ .Lang }}"
|
||||
href="{{ .Permalink }}"
|
||||
/>{{ end }}
|
||||
</url>
|
||||
{{ end }}{{ end }}
|
||||
</urlset>
|
||||
@@ -1,790 +0,0 @@
|
||||
/* Base16 Eighties Colorscheme by Chris Kempson (http://chriskempson.com) */
|
||||
/* .base00 { color: #2d2d2d; }
|
||||
.base01 { color: #393939; }
|
||||
.base02 { color: #515151; }
|
||||
.base03 { color: #747369; }
|
||||
.base04 { color: #a09f93; }
|
||||
.base06 { color: #e8e6df; }
|
||||
.base07 { color: #f2f0ec; } */
|
||||
.base08 {
|
||||
color: #f2777a; }
|
||||
|
||||
.base09 {
|
||||
color: #f99157; }
|
||||
|
||||
.base0a {
|
||||
color: #ffcc66; }
|
||||
|
||||
.base0b {
|
||||
color: #99cc99; }
|
||||
|
||||
.base0c {
|
||||
color: #66cccc; }
|
||||
|
||||
.base0d {
|
||||
color: #6699cc; }
|
||||
|
||||
.base0e {
|
||||
color: #cc99cc; }
|
||||
|
||||
.base0f {
|
||||
color: #d27b53; }
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #2d2d2d;
|
||||
color: #f2f0ec;
|
||||
line-height: 1.5;
|
||||
font-size: 100%;
|
||||
/* font-family: 'Source Code Pro', monospace; */
|
||||
font-family: 'Hack', monospace;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh; }
|
||||
body a {
|
||||
color: #66cccc; }
|
||||
body a:visited {
|
||||
color: #66cccc; }
|
||||
body a:active {
|
||||
color: #66cccc; }
|
||||
|
||||
.container {
|
||||
max-width: 52em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
flex: 1; }
|
||||
.container .copyright a {
|
||||
color: #747369; }
|
||||
.container .copyright a:visited {
|
||||
color: #747369; }
|
||||
.container .copyright a:active {
|
||||
color: #747369; }
|
||||
@media (max-width: 52em) {
|
||||
.container {
|
||||
width: 100%; } }
|
||||
|
||||
div .right {
|
||||
float: right; }
|
||||
|
||||
div .clearfix {
|
||||
overflow: auto; }
|
||||
|
||||
article .single section {
|
||||
/* background-color: #e6e6fa; */
|
||||
background-color: #cbbeb5;
|
||||
color: #2d2d2d;
|
||||
padding-left: 8rem;
|
||||
padding-right: 8rem;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
/* min-height: 50%; */
|
||||
/* min-height: 30em; */ }
|
||||
@media (max-width: 52em) {
|
||||
article .single section {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem; } }
|
||||
|
||||
.article-list article {
|
||||
/* background-color: #e6e6fa; */
|
||||
background-color: #cbbeb5;
|
||||
color: #2d2d2d;
|
||||
padding-left: 8rem;
|
||||
padding-right: 8rem;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
/* min-height: 50%; */
|
||||
/* min-height: 30em; */ }
|
||||
@media (max-width: 52em) {
|
||||
.article-list article {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem; } }
|
||||
|
||||
header {
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 1rem; }
|
||||
@media (max-width: 52em) {
|
||||
header {
|
||||
margin-top: 0;
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem; } }
|
||||
|
||||
footer {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
color: #747369; }
|
||||
footer .container {
|
||||
background-color: #393939;
|
||||
max-width: 62em;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding-top: 0.1rem;
|
||||
padding-bottom: 0.1rem; }
|
||||
@media (max-width: 52em) {
|
||||
footer {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0; } }
|
||||
@media (max-width: 800px) {
|
||||
footer {
|
||||
font-size: 0.8em; } }
|
||||
|
||||
/* Typography */
|
||||
h1 {
|
||||
font-weight: bold;
|
||||
line-height: 1.25;
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em; }
|
||||
|
||||
h2 {
|
||||
font-weight: bold;
|
||||
line-height: 1.25;
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em; }
|
||||
|
||||
h3 {
|
||||
font-weight: bold;
|
||||
line-height: 1.25;
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em; }
|
||||
|
||||
h4 {
|
||||
font-weight: bold;
|
||||
line-height: 1.25;
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em; }
|
||||
|
||||
h5 {
|
||||
font-weight: bold;
|
||||
line-height: 1.25;
|
||||
margin-top: 1em;
|
||||
margin-bottom: .5em; }
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
h1 {
|
||||
font-size: 2rem; }
|
||||
|
||||
h2 {
|
||||
font-size: 1.5rem; }
|
||||
|
||||
h3 {
|
||||
font-size: 1.25rem; }
|
||||
|
||||
h4 {
|
||||
font-size: 1rem; }
|
||||
|
||||
h5 {
|
||||
font-size: .875rem; }
|
||||
|
||||
h6 {
|
||||
font-size: .75rem; }
|
||||
|
||||
pre, code {
|
||||
font-family: inherit;
|
||||
font-size: inherit; }
|
||||
|
||||
header a .path .path:visited {
|
||||
color: #6699cc; }
|
||||
|
||||
header span caret {
|
||||
color: #f2f0ec; }
|
||||
|
||||
footer a {
|
||||
color: #747369; }
|
||||
footer a:visited {
|
||||
color: #747369; }
|
||||
footer a:active {
|
||||
color: #747369; }
|
||||
|
||||
.page-not-found h1 {
|
||||
text-align: center;
|
||||
font-size: 5em; }
|
||||
|
||||
.page-not-found h2 {
|
||||
text-align: center;
|
||||
font-size: 3em;
|
||||
color: #a09f93;
|
||||
margin-bottom: 4rem; }
|
||||
|
||||
@media (max-width: 52em) {
|
||||
.page-not-found h1 {
|
||||
font-size: 3em; }
|
||||
.page-not-found h2 {
|
||||
font-size: 2em; } }
|
||||
|
||||
#homepage #about {
|
||||
font-size: 1.25rem; }
|
||||
#homepage #about h2 {
|
||||
margin-top: 1.25rem;
|
||||
font-size: 2rem;
|
||||
color: #ffcc66;
|
||||
text-align: center; }
|
||||
#homepage #about .me-equation {
|
||||
margin-top: 3em;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
/* align horizontal */
|
||||
align-items: center;
|
||||
/* align vertical */ }
|
||||
#homepage #about .me-equation .equation-part {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
/* align horizontal */
|
||||
align-items: center;
|
||||
/* align vertical */ }
|
||||
#homepage #about .me-equation .equation-part a {
|
||||
text-decoration: none;
|
||||
width: 70%; }
|
||||
#homepage #about .me-equation .equation-part img {
|
||||
width: 70%;
|
||||
height: 100%;
|
||||
border-radius: 1.1em;
|
||||
display: inline; }
|
||||
#homepage #about .me-equation .equation-part img#gnu {
|
||||
background-color: #a09f93; }
|
||||
#homepage #about .me-equation .equation-part p {
|
||||
font-size: 3vw;
|
||||
display: inline-block;
|
||||
padding-left: 0.2rem;
|
||||
padding-right: 0.2rem; }
|
||||
@media (max-width: 800px) {
|
||||
#homepage #about .me-equation {
|
||||
flex-wrap: wrap;
|
||||
margin-top: 2em;
|
||||
justify-content: space-around;
|
||||
/* align horizontal */ }
|
||||
#homepage #about .me-equation .equation-part {
|
||||
min-width: 33%; }
|
||||
#homepage #about .me-equation .equation-part img {
|
||||
flex: 1.5; }
|
||||
#homepage #about .me-equation .equation-part img#hexatar {
|
||||
max-width: 20%;
|
||||
margin-top: 1.75rem; }
|
||||
#homepage #about .me-equation .equation-part p {
|
||||
font-size: 6vw;
|
||||
flex: 1; }
|
||||
#homepage #about .me-equation .equation-part#uoft-part {
|
||||
justify-content: flex-end; } }
|
||||
@media (max-width: 800px) {
|
||||
#homepage #about {
|
||||
font-size: .9em; }
|
||||
#homepage #about h1 {
|
||||
font-size: 1.4rem; } }
|
||||
|
||||
@media (max-width: 52em) {
|
||||
#homepage {
|
||||
margin-bottom: 2rem; } }
|
||||
|
||||
/* .homepage section.categories,
|
||||
.homepage section.tags {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
.homepage .category,
|
||||
.homepage .category a,
|
||||
.homepage .tag,
|
||||
.homepage .tag a {
|
||||
color: #cc99cc;
|
||||
}
|
||||
|
||||
.homepage .tag {
|
||||
margin-right: 2em;
|
||||
} */
|
||||
#resume a {
|
||||
text-decoration: none; }
|
||||
#resume a:hover {
|
||||
text-decoration: underline; }
|
||||
|
||||
#resume h1 {
|
||||
color: #f99157; }
|
||||
|
||||
#resume h2 {
|
||||
color: #ffcc66;
|
||||
display: inline; }
|
||||
|
||||
#resume p.project-date {
|
||||
float: right; }
|
||||
|
||||
h1.site-title {
|
||||
text-align: center;
|
||||
/* font-size: 3.5em; */
|
||||
font-size: 4.8em;
|
||||
color: #d3d0c8;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.5rem; }
|
||||
h1.site-title a {
|
||||
color: #66cccc; }
|
||||
h1.site-title a:visited {
|
||||
color: #66cccc; }
|
||||
h1.site-title a:active {
|
||||
color: #66cccc; }
|
||||
h1.site-title a {
|
||||
text-decoration: none; }
|
||||
@media (max-width: 52em) {
|
||||
h1.site-title {
|
||||
font-size: 3em; } }
|
||||
@media (max-width: 800px) {
|
||||
h1.site-title {
|
||||
font-size: 2em; } }
|
||||
|
||||
.hero-logo img {
|
||||
margin-top: 0.5rem;
|
||||
width: 100%; }
|
||||
|
||||
.nav-bar {
|
||||
margin-left: .5em;
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem; }
|
||||
.nav-bar .caret {
|
||||
color: #f2f0ec;
|
||||
margin-right: .75rem; }
|
||||
.nav-bar .nav-bar-links {
|
||||
display: inline; }
|
||||
.nav-bar .nav-bar-links .nav-bar-link {
|
||||
padding-right: .5em; }
|
||||
@media (max-width: 800px) {
|
||||
.nav-bar {
|
||||
font-size: .8em; } }
|
||||
|
||||
.hero-tagline {
|
||||
margin-top: .3em;
|
||||
font-size: .8rem;
|
||||
text-align: center; }
|
||||
.hero-tagline .icon {
|
||||
width: 1.25rem; }
|
||||
|
||||
.article-list h1.list-title {
|
||||
font-size: 3em;
|
||||
color: #ffcc66; }
|
||||
|
||||
.article-list article {
|
||||
padding-top: 4rem;
|
||||
padding-bottom: 4rem;
|
||||
margin-bottom: 4rem; }
|
||||
|
||||
.article-list article h2.headline,
|
||||
.article-list article h2.headline a {
|
||||
margin-top: 0;
|
||||
color: #6699cc; }
|
||||
|
||||
.article-list article .meta {
|
||||
margin-bottom: 1rem; }
|
||||
|
||||
.article-list article .meta .key {
|
||||
color: #747369; }
|
||||
|
||||
.article-list article .meta .val,
|
||||
.article-list article .meta .val a {
|
||||
color: #cc99cc; }
|
||||
|
||||
.article-list article section.summary a {
|
||||
color: #d27b53; }
|
||||
|
||||
article.single .meta {
|
||||
font-size: 0.9em;
|
||||
text-align: right;
|
||||
margin-top: .5rem;
|
||||
margin-bottom: .5rem; }
|
||||
article.single .meta .key {
|
||||
color: #747369; }
|
||||
article.single .meta .val {
|
||||
color: #cc99cc; }
|
||||
article.single .meta .val a {
|
||||
color: #cc99cc; }
|
||||
|
||||
article.single .body {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 3rem; }
|
||||
|
||||
@media (max-width: 52em) {
|
||||
article.single .meta {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem; }
|
||||
article.single .body {
|
||||
padding-top: .5rem;
|
||||
padding-bottom: 1rem; } }
|
||||
|
||||
article.single h1.headline {
|
||||
margin-top: 0;
|
||||
font-size: 3em;
|
||||
color: #ffcc66; }
|
||||
|
||||
@media (max-width: 52em) {
|
||||
article.single h1.headline {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem; } }
|
||||
|
||||
/* Highlight Colors */
|
||||
article.single section.body h1 {
|
||||
color: #6699cc; }
|
||||
|
||||
article.single section.body h2 {
|
||||
color: #99cc99; }
|
||||
|
||||
article.single section.body h3 {
|
||||
color: #f99157; }
|
||||
|
||||
article.single section.body h4 {
|
||||
color: #f2777a; }
|
||||
|
||||
article.single section.body h5 {
|
||||
color: #515151; }
|
||||
|
||||
article.single section.body h6 {
|
||||
color: #747369; }
|
||||
|
||||
article.single section.body a, a:visited {
|
||||
color: #a06700; }
|
||||
|
||||
/* Article Elements */
|
||||
article.single * {
|
||||
max-width: 100%; }
|
||||
|
||||
article.single pre {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
border-radius: 3px;
|
||||
padding: 2rem; }
|
||||
|
||||
article.single p code {
|
||||
padding: 0.2em 0.5em;
|
||||
border-radius: 3px;
|
||||
background: #747369;
|
||||
color: #f2f0ec; }
|
||||
|
||||
article.single figure, article.single div.highlight {
|
||||
box-sizing: border-box;
|
||||
max-width: 52rem;
|
||||
width: 52rem;
|
||||
margin-bottom: 1rem;
|
||||
padding: 1em;
|
||||
background-color: #393939; }
|
||||
|
||||
@media (max-width: 52em) {
|
||||
article.single figure, article.single div.highlight {
|
||||
width: 100%;
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
border-radius: 3px; } }
|
||||
|
||||
article.single figure img {
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
border-radius: 3px; }
|
||||
|
||||
article.single figure figcaption {
|
||||
margin-top: 1rem; }
|
||||
|
||||
article.single figure figcaption h4 {
|
||||
margin-top: 0;
|
||||
text-align: center;
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
color: #f2f0ec; }
|
||||
|
||||
article.single table {
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
max-width: 100%;
|
||||
width: 100%; }
|
||||
|
||||
article.single th,
|
||||
article.single td {
|
||||
padding: .25rem 1rem;
|
||||
line-height: inherit;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: #a09f93; }
|
||||
|
||||
article.single tr:last-child td {
|
||||
border-bottom: 0; }
|
||||
|
||||
article.single th {
|
||||
text-align: left;
|
||||
font-weight: bold;
|
||||
vertical-align: bottom; }
|
||||
|
||||
article.single td {
|
||||
vertical-align: top; }
|
||||
|
||||
article.single blockquote {
|
||||
margin-left: 2rem;
|
||||
margin-right: 3rem;
|
||||
padding-left: 1rem;
|
||||
border-left: 5px solid #66cccc; }
|
||||
|
||||
article.single hr {
|
||||
border: 0;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-width: 1px;
|
||||
border-bottom-color: #a09f93; }
|
||||
|
||||
pre {
|
||||
background: #2d2d2d;
|
||||
color: #f2f0ec; }
|
||||
|
||||
.highlight .hll {
|
||||
background-color: #515151; }
|
||||
|
||||
.highlight .c {
|
||||
color: #747369; }
|
||||
|
||||
/* Comment */
|
||||
.highlight .err {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Error */
|
||||
.highlight .k {
|
||||
color: #cc99cc; }
|
||||
|
||||
/* Keyword */
|
||||
.highlight .l {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal */
|
||||
.highlight .n {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name */
|
||||
.highlight .o {
|
||||
color: #66cccc; }
|
||||
|
||||
/* Operator */
|
||||
.highlight .p {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Punctuation */
|
||||
.highlight .cm {
|
||||
color: #747369; }
|
||||
|
||||
/* Comment.Multiline */
|
||||
.highlight .cp {
|
||||
color: #747369; }
|
||||
|
||||
/* Comment.Preproc */
|
||||
.highlight .c1 {
|
||||
color: #747369; }
|
||||
|
||||
/* Comment.Single */
|
||||
.highlight .cs {
|
||||
color: #747369; }
|
||||
|
||||
/* Comment.Special */
|
||||
.highlight .gd {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Generic.Deleted */
|
||||
.highlight .ge {
|
||||
font-style: italic; }
|
||||
|
||||
/* Generic.Emph */
|
||||
.highlight .gh {
|
||||
color: #f2f0ec;
|
||||
font-weight: bold; }
|
||||
|
||||
/* Generic.Heading */
|
||||
.highlight .gi {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Generic.Inserted */
|
||||
.highlight .gp {
|
||||
color: #747369;
|
||||
font-weight: bold; }
|
||||
|
||||
/* Generic.Prompt */
|
||||
.highlight .gs {
|
||||
font-weight: bold; }
|
||||
|
||||
/* Generic.Strong */
|
||||
.highlight .gu {
|
||||
color: #66cccc;
|
||||
font-weight: bold; }
|
||||
|
||||
/* Generic.Subheading */
|
||||
.highlight .kc {
|
||||
color: #cc99cc; }
|
||||
|
||||
/* Keyword.Constant */
|
||||
.highlight .kd {
|
||||
color: #cc99cc; }
|
||||
|
||||
/* Keyword.Declaration */
|
||||
.highlight .kn {
|
||||
color: #66cccc; }
|
||||
|
||||
/* Keyword.Namespace */
|
||||
.highlight .kp {
|
||||
color: #cc99cc; }
|
||||
|
||||
/* Keyword.Pseudo */
|
||||
.highlight .kr {
|
||||
color: #cc99cc; }
|
||||
|
||||
/* Keyword.Reserved */
|
||||
.highlight .kt {
|
||||
color: #ffcc66; }
|
||||
|
||||
/* Keyword.Type */
|
||||
.highlight .ld {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.Date */
|
||||
.highlight .m {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number */
|
||||
.highlight .s {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String */
|
||||
.highlight .na {
|
||||
color: #6699cc; }
|
||||
|
||||
/* Name.Attribute */
|
||||
.highlight .nb {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name.Builtin */
|
||||
.highlight .nc {
|
||||
color: #ffcc66; }
|
||||
|
||||
/* Name.Class */
|
||||
.highlight .no {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Constant */
|
||||
.highlight .nd {
|
||||
color: #66cccc; }
|
||||
|
||||
/* Name.Decorator */
|
||||
.highlight .ni {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name.Entity */
|
||||
.highlight .ne {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Exception */
|
||||
.highlight .nf {
|
||||
color: #6699cc; }
|
||||
|
||||
/* Name.Function */
|
||||
.highlight .nl {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name.Label */
|
||||
.highlight .nn {
|
||||
color: #ffcc66; }
|
||||
|
||||
/* Name.Namespace */
|
||||
.highlight .nx {
|
||||
color: #6699cc; }
|
||||
|
||||
/* Name.Other */
|
||||
.highlight .py {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name.Property */
|
||||
.highlight .nt {
|
||||
color: #66cccc; }
|
||||
|
||||
/* Name.Tag */
|
||||
.highlight .nv {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Variable */
|
||||
.highlight .ow {
|
||||
color: #66cccc; }
|
||||
|
||||
/* Operator.Word */
|
||||
.highlight .w {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Text.Whitespace */
|
||||
.highlight .mf {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number.Float */
|
||||
.highlight .mh {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number.Hex */
|
||||
.highlight .mi {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number.Integer */
|
||||
.highlight .mo {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number.Oct */
|
||||
.highlight .sb {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Backtick */
|
||||
.highlight .sc {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Literal.String.Char */
|
||||
.highlight .sd {
|
||||
color: #747369; }
|
||||
|
||||
/* Literal.String.Doc */
|
||||
.highlight .s2 {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Double */
|
||||
.highlight .se {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.String.Escape */
|
||||
.highlight .sh {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Heredoc */
|
||||
.highlight .si {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.String.Interpol */
|
||||
.highlight .sx {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Other */
|
||||
.highlight .sr {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Regex */
|
||||
.highlight .s1 {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Single */
|
||||
.highlight .ss {
|
||||
color: #99cc99; }
|
||||
|
||||
/* Literal.String.Symbol */
|
||||
.highlight .bp {
|
||||
color: #f2f0ec; }
|
||||
|
||||
/* Name.Builtin.Pseudo */
|
||||
.highlight .vc {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Variable.Class */
|
||||
.highlight .vg {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Variable.Global */
|
||||
.highlight .vi {
|
||||
color: #f2777a; }
|
||||
|
||||
/* Name.Variable.Instance */
|
||||
.highlight .il {
|
||||
color: #f99157; }
|
||||
|
||||
/* Literal.Number.Integer.Long */
|
||||
/*# sourceMappingURL=style.css.map */
|
||||
@@ -1 +0,0 @@
|
||||
{"Target":"sass/main.css","MediaType":"text/css","Data":{}}
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 132 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 216 KiB |
|
Before Width: | Height: | Size: 56 KiB |
@@ -1,116 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512.002 512.002" style="enable-background:new 0 0 512.002 512.002;" xml:space="preserve">
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M259.345,110.181c-0.076-0.789-0.112-1.578-0.112-2.369c0-11.578,7.584-20.997,16.903-20.997
|
||||
c9.537,0,17.007,9.223,17.007,20.997c0,2.666-0.401,5.236-1.148,7.61c2.795-4.442,4.412-10.032,4.412-15.892
|
||||
c0-14.079-9-25.535-20.06-25.535c-11.063,0-20.06,11.455-20.06,25.535c0,3.461,0.542,6.849,1.615,10.099
|
||||
C258.369,109.807,258.851,109.992,259.345,110.181z"/>
|
||||
<path style="fill:#FFFFFF;" d="M209.407,87.924c0.604-0.092,1.157-0.134,1.707-0.134c7.418,0,14.069,7.281,15.812,17.311
|
||||
c0.175,1.1,0.285,2.196,0.334,3.277c0.482-0.245,0.972-0.475,1.471-0.688c0.245-1.739,0.364-3.369,0.364-5.006
|
||||
c0-12.986-6.879-23.957-15.019-23.957c-6.933,0-12.775,7.636-14.44,17.95C201.532,91.973,204.993,88.657,209.407,87.924z"/>
|
||||
<path style="fill:#FFFFFF;" d="M349.093,349.859c1.865-7.908,5.575-28.1,2.063-52.525c-4.438-30.87-47.875-126.994-55.35-137.727
|
||||
c-4.36,0.609-15.946,7.304-25.342,12.733c-10.896,6.295-22.166,12.807-29.829,15.019c-1.6,0.453-3.273,0.677-4.997,0.677
|
||||
c-11.199,0-23.32-9.468-31.135-16.926c-1.365,14.472-9.078,32.835-17.423,42.273c-5.271,6.045-9.982,19.854-14.538,33.21
|
||||
c-4.22,12.367-8.583,25.157-13.925,33.592c-10.809,16.842-17.009,49.555-9.144,68.159c3.806,9.018,17.62,19.668,29.807,29.062
|
||||
c14.905,11.491,27.776,21.413,29.196,31.419c1.657,11.831-4.635,18.388-10.927,21.497l15.961,18.263
|
||||
c2.466,0.374,8.405,1.091,17.712,1.091c10.886,0,22.97-0.952,35.907-2.834c31.763-4.705,53.886-30.88,58.261-36.438
|
||||
c0.023-7.363,0.248-40.123,2.396-50.366c0.834-3.945,4.037-10.547,16.136-10.547C345.803,349.488,347.594,349.653,349.093,349.859z
|
||||
"/>
|
||||
</g>
|
||||
<g>
|
||||
<path style="fill:#E69629;" d="M210.488,147.081c0.623,2.422,6.136,8.617,14.71,14.242c1.217,0.781,2.359,1.558,3.431,2.286
|
||||
c4.756,3.232,6.871,4.559,10.29,4.098c5.034-0.66,23.579-11.904,31.499-16.706l1.971-1.194c2.949-1.796,5.306-3.023,7.2-4.009
|
||||
c3.75-1.951,4.089-2.266,4.249-2.978c-0.425-1.103-3.926-4.056-10.641-6.364c-2.134-0.764-5.162-1.974-8.67-3.374
|
||||
c-7.589-3.03-17.984-7.176-22.197-7.922c-0.18-0.034-0.349-0.045-0.539-0.045c-3.586,0-10.831,4.499-18.031,11.194
|
||||
C220.211,139.513,213.283,144.92,210.488,147.081z"/>
|
||||
<path style="fill:#E69629;" d="M147.149,395.532c-3.119-5.222-5.815-9.735-7.27-11.984c-5.738-8.931-15.696-18.907-20.442-18.907
|
||||
c-0.416,0-0.635,0.097-0.777,0.181c-2.533,1.442-4.662,5.837-6.723,10.084c-2.847,5.875-6.075,12.535-12.036,16.146
|
||||
c-4.41,2.676-11.152,4.138-17.668,5.555c-4.637,1.007-15.493,3.362-16.003,5.562c-0.703,2.968-0.049,6.033,0.781,9.913
|
||||
c0.977,4.578,2.196,10.274,1.158,17.267c-0.732,4.386-2.063,8.575-3.354,12.627c-1.793,5.637-3.826,12.03-2.073,13.995
|
||||
c2.162,1.909,15.207,4.019,24.731,5.562c11.972,1.937,24.351,3.942,31.932,7.118l2.009,0.846
|
||||
c13.579,5.706,38.854,16.329,51.622,16.329c1.162,0,2.152-0.094,2.951-0.274c2.202-1.482,11.531-8.184,13.284-16.424
|
||||
c2.394-10.619-7.338-23.005-13.349-29.444C169.25,432.519,156.477,411.14,147.149,395.532z"/>
|
||||
<path style="fill:#E69629;" d="M435.761,420.974l-1.556-0.819c-10.688-5.65-16.307-20.984-15.563-32.542
|
||||
c0.139-2.129-0.126-3.78-0.557-5.045c-1.974,3.247-4.793,7.348-8.143,10.697c-5.691,5.692-19.584,11.833-32.105,11.833
|
||||
c-4.67,0-8.927-0.823-12.652-2.448c-12.498-5.451-14.202-21.081-14.234-28.917c-0.185,0.052-0.354,0.112-0.505,0.183
|
||||
c-0.764,2.701-0.024,11.806,0.475,17.935c0.267,3.279,0.542,6.669,0.705,9.78c0.708,13.708-3.658,36.958-7.447,54.049
|
||||
c-3.597,16.732,3.097,28.464,11.224,30.997c0.73,0.232,1.551,0.346,2.453,0.346c7.487,0,19.886-7.749,30.848-19.285
|
||||
c7.788-8.189,25.122-17.04,40.416-24.85c8.622-4.402,17.537-8.956,20.071-11.271c0.564-0.525,0.648-0.819,0.65-0.821
|
||||
C449.681,428.282,439.568,422.972,435.761,420.974z"/>
|
||||
</g>
|
||||
<path d="M461.071,411.093c-15.014-6.147-21.437-14.308-20.816-26.485c0.64-14.212-7.423-24.62-11.252-28.733
|
||||
c2.313-8.837,9.073-39.406,0.007-65.959c-9.743-28.42-39.49-71.825-70.183-114.492c-12.565-17.522-13.159-36.57-13.846-58.625
|
||||
c-0.658-21.036-1.4-44.88-13.131-71.387C319.095,16.55,293.501,0,261.628,0c-18.961,0-38.424,5.926-53.401,16.257
|
||||
c-30.67,21.167-26.616,67.316-23.933,97.851c0.368,4.182,0.713,8.132,0.915,11.504c1.786,29.908,0.161,45.672-1.964,50.463
|
||||
c-1.375,3.131-8.143,12.041-15.306,21.476c-7.408,9.758-15.807,20.816-22.691,31.121c-8.214,12.401-14.845,31.355-21.257,49.684
|
||||
c-4.692,13.411-9.124,26.08-13.438,33.655c-8.177,14.564-6.142,28.145-4.444,34.422c-3.096,2.15-7.568,6.386-11.343,14.366
|
||||
c-4.563,9.736-13.821,14.967-33.072,18.669c-8.847,1.81-14.947,5.53-18.137,11.056c-4.642,8.043-2.113,18.148,0.193,25.056
|
||||
c3.408,10.151,1.284,16.577-2.577,28.246c-0.89,2.691-1.899,5.741-2.921,9.102c-1.61,5.308-1.029,10.131,1.722,14.341
|
||||
c7.27,11.113,28.486,15.033,50.326,17.613c13.04,1.548,27.312,6.763,41.116,11.808c13.525,4.942,27.511,10.054,40.223,11.605
|
||||
c1.932,0.243,3.846,0.364,5.691,0.364c19.194,0,27.866-12.735,30.616-17.967c6.894-1.407,30.673-5.912,55.181-6.518
|
||||
c24.469-0.697,48.143,4.135,54.85,5.635c2.108,4.036,7.667,13.253,16.527,18.004c4.87,2.662,11.647,4.188,18.588,4.188
|
||||
c0.002,0,0,0,0.002,0c7.413,0,21.516-1.753,32.678-13.497c11.133-11.796,38.949-26.859,59.261-37.856
|
||||
c4.533-2.454,8.773-4.751,12.491-6.822c11.41-6.325,17.636-15.362,17.081-24.794C474.141,421.194,468.955,414.322,461.071,411.093z
|
||||
M276.345,73.995c11.061,0,20.06,11.455,20.06,25.535c0,5.859-1.617,11.449-4.412,15.892c0.745-2.374,1.148-4.944,1.148-7.61
|
||||
c0-11.774-7.47-20.997-17.007-20.997c-9.32,0-16.903,9.419-16.903,20.997c0,0.791,0.039,1.58,0.112,2.369
|
||||
c-0.494-0.188-0.975-0.374-1.445-0.552c-1.073-3.25-1.615-6.638-1.615-10.099C256.284,85.451,265.282,73.995,276.345,73.995z
|
||||
M242.329,125.164c4.214,0.744,14.606,4.892,22.197,7.922c3.508,1.4,6.539,2.61,8.67,3.374c6.715,2.308,10.217,5.261,10.641,6.364
|
||||
c-0.159,0.713-0.499,1.027-4.249,2.978c-1.894,0.985-4.25,2.211-7.2,4.009l-1.971,1.194c-7.92,4.803-26.465,16.048-31.499,16.706
|
||||
c-3.42,0.46-5.535-0.868-10.29-4.098c-1.073-0.73-2.214-1.506-3.431-2.286c-8.573-5.627-14.088-11.82-14.71-14.242
|
||||
c2.795-2.16,9.723-7.568,13.27-10.771c7.2-6.695,14.445-11.194,18.031-11.194C241.978,125.117,242.15,125.13,242.329,125.164z
|
||||
M214.073,78.724c8.142,0,15.019,10.97,15.019,23.957c0,1.638-0.118,3.267-0.364,5.006c-0.499,0.213-0.989,0.445-1.471,0.688
|
||||
c-0.049-1.083-0.161-2.177-0.334-3.277c-1.742-10.03-8.394-17.311-15.812-17.311c-0.549,0-1.101,0.042-1.707,0.134
|
||||
c-4.413,0.735-7.875,4.049-9.772,8.751C201.299,86.359,207.142,78.724,214.073,78.724z M189.271,469.128
|
||||
c-1.753,8.241-11.083,14.942-13.284,16.424c-0.799,0.18-1.788,0.274-2.951,0.274c-12.768,0-38.043-10.623-51.622-16.329
|
||||
l-2.009-0.846c-7.583-3.178-19.961-5.18-31.932-7.118c-9.525-1.543-22.568-3.653-24.731-5.562c-1.753-1.966,0.28-8.358,2.073-13.995
|
||||
c1.291-4.052,2.624-8.241,3.354-12.627c1.036-6.993-0.181-12.691-1.158-17.267c-0.829-3.881-1.484-6.945-0.781-9.913
|
||||
c0.51-2.199,11.366-4.554,16.003-5.562c6.518-1.417,13.26-2.879,17.668-5.555c5.961-3.611,9.189-10.27,12.036-16.146
|
||||
c2.061-4.247,4.19-8.642,6.723-10.084c0.143-0.086,0.361-0.181,0.777-0.181c4.746,0,14.704,9.975,20.442,18.907
|
||||
c1.455,2.249,4.151,6.76,7.27,11.984c9.329,15.609,22.102,36.987,28.773,44.151C181.933,446.123,191.664,458.508,189.271,469.128z
|
||||
M327.787,360.037c-2.145,10.243-2.372,43.003-2.396,50.366c-4.375,5.558-26.498,31.732-58.261,36.438
|
||||
c-12.938,1.88-25.019,2.834-35.907,2.834c-9.307,0-15.246-0.719-17.712-1.091l-15.961-18.263
|
||||
c6.292-3.109,12.584-9.666,10.927-21.497c-1.42-10.005-14.291-19.928-29.196-31.419c-12.187-9.394-26.001-20.042-29.807-29.062
|
||||
c-7.865-18.602-1.665-51.315,9.144-68.159c5.342-8.434,9.705-21.225,13.925-33.592c4.556-13.356,9.268-27.166,14.538-33.21
|
||||
c8.345-9.438,16.057-27.801,17.423-42.273c7.814,7.458,19.936,16.926,31.135,16.926c1.724,0,3.398-0.225,4.997-0.677
|
||||
c7.662-2.213,18.931-8.724,29.829-15.019c9.396-5.429,20.982-12.124,25.342-12.733c7.475,10.734,50.912,106.858,55.35,137.727
|
||||
c3.512,24.425-0.198,44.616-2.063,52.525c-1.501-0.206-3.29-0.371-5.17-0.371C331.824,349.488,328.621,356.092,327.787,360.037z
|
||||
M449.194,431.621c-2.533,2.315-11.449,6.869-20.071,11.271c-15.295,7.808-32.631,16.661-40.416,24.85
|
||||
c-10.962,11.536-23.361,19.285-30.848,19.285c-0.901,0-1.722-0.114-2.453-0.346c-8.128-2.533-14.821-14.266-11.224-30.997
|
||||
c3.789-17.093,8.153-40.341,7.447-54.049c-0.163-3.112-0.438-6.502-0.705-9.78c-0.499-6.127-1.239-15.233-0.475-17.935
|
||||
c0.151-0.071,0.319-0.131,0.505-0.183c0.032,7.836,1.734,23.467,14.234,28.917c3.725,1.625,7.982,2.448,12.652,2.448
|
||||
c12.521,0,26.414-6.141,32.105-11.833c3.351-3.349,6.169-7.45,8.143-10.697c0.431,1.264,0.697,2.916,0.557,5.044
|
||||
c-0.744,11.558,4.873,26.891,15.563,32.542l1.556,0.819c3.807,1.996,13.92,7.307,14.083,9.824
|
||||
C449.842,430.801,449.758,431.097,449.194,431.621z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.9 KiB |
BIN
static/img/resume/down-triangle.png
Normal file
|
After Width: | Height: | Size: 580 B |
45
static/img/resume/envelope.svg
Normal file
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
|
||||
<g>
|
||||
<polygon style="fill:#E5E5DA;" points="0,8.5 0,8.604 0,49.371 0,49.5 0.129,49.5 57.541,49.5 57.871,49.5 58,49.5 58,49.371
|
||||
58,8.604 58,8.5 "/>
|
||||
<path style="fill:#D1D0BF;" d="M0,8.501l27.139,27.267c1.049,0.976,2.674,0.976,3.723,0L58,8.5L0,8.501z"/>
|
||||
<path style="fill:#C4C2A5;" d="M0,48.209V9.791c0-0.529,0.606-0.829,1.027-0.508L21,29.5L1.027,48.718
|
||||
C0.606,49.038,0,48.738,0,48.209z"/>
|
||||
<path style="fill:#C4C2A5;" d="M58,48.209V9.791c0-0.529-0.606-0.829-1.027-0.508L37,29.5l19.973,19.218
|
||||
C57.394,49.038,58,48.738,58,48.209z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
46
static/img/resume/link.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 503.118 503.118" style="enable-background:new 0 0 503.118 503.118;" xml:space="preserve">
|
||||
<path style="fill:#FFD15C;" d="M335.151,167.967c10.449,10.449,18.808,22.988,25.078,35.527
|
||||
c22.988,48.065,15.673,108.669-25.078,148.375L223.347,464.718c-51.2,51.2-133.747,51.2-183.902,0
|
||||
c-51.2-51.2-51.2-133.747,0-183.902l79.412-79.412c-9.404,31.347-8.359,64.784,3.135,95.086l-33.437,33.437
|
||||
c-22.988,22.988-22.988,61.649,0,85.682c24.033,24.033,61.649,24.033,85.682,0l111.804-111.804
|
||||
c11.494-11.494,17.763-27.167,17.763-42.841s-6.269-31.347-17.763-42.841c-11.494-11.494-27.167-17.763-42.841-17.763l56.424-56.424
|
||||
C312.163,149.159,323.657,157.518,335.151,167.967z"/>
|
||||
<path style="fill:#FF7058;" d="M167.967,335.151c-10.449-10.449-18.808-22.988-25.078-35.527
|
||||
c-22.988-48.065-15.673-108.669,25.078-148.376L279.771,38.4c51.2-51.2,133.747-51.2,183.902,0c51.2,51.2,51.2,133.747,0,183.902
|
||||
l-79.412,79.412c9.404-31.347,8.359-64.784-3.135-95.086l33.437-33.437c22.988-22.988,22.988-61.649,0-85.682
|
||||
c-24.033-24.033-61.649-24.033-85.682,0L218.122,200.359c-11.494,11.494-17.763,27.167-17.763,42.841s6.269,31.347,17.763,42.841
|
||||
c11.494,11.494,27.167,17.763,42.841,17.763l-56.424,56.424C190.955,353.959,179.461,345.6,167.967,335.151z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
43
static/img/resume/printer.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
|
||||
<polygon style="fill:#C7CAC7;" points="49,35 49,52 52,52 52,49 58,49 58,17 0,17 0,49 6,49 6,52 9,52 9,35 "/>
|
||||
<polygon style="fill:#556080;" points="58,35 58,17 0,17 0,35 9,35 49,35 "/>
|
||||
<rect x="6" y="35" style="fill:#7383BF;" width="46" height="17"/>
|
||||
<polygon style="fill:#EDEADA;" points="49,0 49,7 49,17 9,17 9,0 "/>
|
||||
<polyline style="fill:#EDEADA;" points="49,35 49,58 9,58 9,35 "/>
|
||||
<path style="fill:#CEC9AE;" d="M41,44H17c-0.553,0-1-0.447-1-1s0.447-1,1-1h24c0.553,0,1,0.447,1,1S41.553,44,41,44z"/>
|
||||
<path style="fill:#CEC9AE;" d="M41,49H17c-0.553,0-1-0.447-1-1s0.447-1,1-1h24c0.553,0,1,0.447,1,1S41.553,49,41,49z"/>
|
||||
<circle style="fill:#A4E869;" cx="49" cy="26" r="4"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
BIN
static/img/resume/signature-white.png
Normal file
|
After Width: | Height: | Size: 465 KiB |
BIN
static/img/resume/signature.png
Normal file
|
After Width: | Height: | Size: 467 KiB |
1
static/img/resume/smartphone.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg height="512pt" viewBox="-97 0 512 512" width="512pt" xmlns="http://www.w3.org/2000/svg"><path d="m44.136719 0h229.519531c24.375 0 44.136719 19.761719 44.136719 44.136719v423.726562c0 24.375-19.761719 44.136719-44.136719 44.136719h-229.519531c-24.375 0-44.136719-19.761719-44.136719-44.136719v-423.726562c0-24.375 19.761719-44.136719 44.136719-44.136719zm0 0" fill="#5e5f62"/><path d="m0 70.621094h317.792969v370.757812h-317.792969zm0 0" fill="#90bae1"/><path d="m317.792969 70.621094v170.460937c-177.609375-27.542969-272.507813 36.898438-317.792969 86.863281v-257.324218zm0 0" fill="#b0d3f0"/><path d="m185.378906 485.515625h-52.964844c-4.875 0-8.828124-3.949219-8.828124-8.824219 0-4.878906 3.953124-8.828125 8.828124-8.828125h52.964844c4.875 0 8.828125 3.949219 8.828125 8.828125 0 4.875-3.953125 8.824219-8.828125 8.824219zm0 0" fill="#2c2f38"/><path d="m167.722656 0v26.484375c0 4.875-3.949218 8.824219-8.824218 8.824219-4.878907 0-8.828126-3.949219-8.828126-8.824219v-26.484375zm0 0" fill="#2c2f38"/><g fill="#fff"><path d="m44.136719 247.171875c-3.511719 0-6.691407-2.085937-8.089844-5.308594-1.402344-3.222656-.757813-6.96875 1.636719-9.539062l123.585937-132.414063c2.132813-2.390625 5.390625-3.4375 8.515625-2.742187 3.125.699219 5.625 3.03125 6.539063 6.101562.910156 3.070313.089843 6.390625-2.148438 8.683594l-123.585937 132.414063c-1.664063 1.792968-4.003906 2.8125-6.453125 2.804687zm0 0"/><path d="m52.964844 308.964844c-3.496094 0-6.660156-2.058594-8.074219-5.257813-1.414063-3.195312-.808594-6.925781 1.542969-9.511719l176.550781-194.207031c3.28125-3.605469 8.867187-3.871093 12.472656-.589843 3.609375 3.28125 3.875 8.867187.59375 12.472656l-176.554687 194.207031c-1.671875 1.839844-4.042969 2.886719-6.53125 2.886719zm0 0"/><path d="m141.242188 282.484375c-3.480469 0-6.632813-2.042969-8.054688-5.214844-1.425781-3.175781-.851562-6.886719 1.460938-9.484375l70.621093-79.449218c2.09375-2.355469 5.289063-3.414063 8.378907-2.773438 3.089843.636719 5.601562 2.875 6.59375 5.867188.992187 2.996093.3125 6.292968-1.785157 8.648437l-70.621093 79.449219c-1.675782 1.878906-4.074219 2.957031-6.59375 2.957031zm0 0"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
43
static/img/server/check.svg
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 507.2 507.2" style="enable-background:new 0 0 507.2 507.2;" xml:space="preserve">
|
||||
<circle style="fill:#32BA7C;" cx="253.6" cy="253.6" r="253.6"/>
|
||||
<path style="fill:#0AA06E;" d="M188.8,368l130.4,130.4c108-28.8,188-127.2,188-244.8c0-2.4,0-4.8,0-7.2L404.8,152L188.8,368z"/>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M260,310.4c11.2,11.2,11.2,30.4,0,41.6l-23.2,23.2c-11.2,11.2-30.4,11.2-41.6,0L93.6,272.8
|
||||
c-11.2-11.2-11.2-30.4,0-41.6l23.2-23.2c11.2-11.2,30.4-11.2,41.6,0L260,310.4z"/>
|
||||
<path style="fill:#FFFFFF;" d="M348.8,133.6c11.2-11.2,30.4-11.2,41.6,0l23.2,23.2c11.2,11.2,11.2,30.4,0,41.6l-176,175.2
|
||||
c-11.2,11.2-30.4,11.2-41.6,0l-23.2-23.2c-11.2-11.2-11.2-30.4,0-41.6L348.8,133.6z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
46
static/img/server/x.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<circle style="fill:#E21B1B;" cx="256" cy="256" r="256"/>
|
||||
<path style="fill:#C40606;" d="M510.28,285.304L367.912,142.936L150.248,368.608l140.928,140.928
|
||||
C406.352,493.696,497.056,401.288,510.28,285.304z"/>
|
||||
<g>
|
||||
<path style="fill:#FFFFFF;" d="M354.376,371.536c-5.12,0-10.232-1.952-14.144-5.856L146.408,171.848
|
||||
c-7.816-7.816-7.816-20.472,0-28.28s20.472-7.816,28.28,0L368.52,337.4c7.816,7.816,7.816,20.472,0,28.28
|
||||
C364.608,369.584,359.496,371.536,354.376,371.536z"/>
|
||||
<path style="fill:#FFFFFF;" d="M160.544,371.536c-5.12,0-10.232-1.952-14.144-5.856c-7.816-7.816-7.816-20.472,0-28.28
|
||||
l193.832-193.832c7.816-7.816,20.472-7.816,28.28,0s7.816,20.472,0,28.28L174.688,365.68
|
||||
C170.784,369.584,165.664,371.536,160.544,371.536z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
56
static/img/social/email.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 504.124 504.124" style="enable-background:new 0 0 504.124 504.124;" xml:space="preserve">
|
||||
<path style="fill:#D07C40;" d="M0,200.862L252.062,51.2l252.062,149.662v220.554H0V200.862z"/>
|
||||
<path style="fill:#EFEFEF;" d="M55.138,11.815h393.846c8.665,0,15.754,7.089,15.754,15.754v275.692
|
||||
c0,8.665-7.089,15.754-15.754,15.754H55.138c-8.665,0-15.754-7.089-15.754-15.754V27.569C39.385,18.905,46.474,11.815,55.138,11.815
|
||||
z"/>
|
||||
<path style="fill:#26A6D1;" d="M415.902,43.323l25.206-31.508h7.877c8.665,0,15.754,7.089,15.754,15.754v15.754H415.902z
|
||||
M211.102,43.323l25.206-31.508h55.138L266.24,43.323H211.102z M39.385,43.323V27.569c0-8.665,7.089-15.754,15.754-15.754h39.385
|
||||
L69.317,43.323H39.385z"/>
|
||||
<path style="fill:#EFC75E;" d="M504.123,468.677c0,12.997-10.634,23.631-23.631,23.631H23.631C10.634,492.309,0,481.674,0,468.677
|
||||
V200.862l252.062,110.277l252.062-110.277v267.815H504.123z"/>
|
||||
<path style="fill:#E8C15B;" d="M504.123,468.677c0,12.997-10.634,23.631-23.631,23.631H23.631C10.634,492.309,0,481.674,0,468.677
|
||||
v-47.262l504.123-220.554V468.677z"/>
|
||||
<path style="fill:#D6D9DB;" d="M160.295,151.631l3.151,16.542l-25.206-39.385l-35.446,55.138c-0.394,5.12,22.449,9.058,50.806,9.058
|
||||
s51.2-3.938,51.2-9.058l-31.114-46.08C173.686,137.846,160.295,151.631,160.295,151.631z M163.446,129.969
|
||||
c5.514,0,9.846-4.332,9.846-9.846s-4.332-9.846-9.846-9.846s-9.846,4.332-9.846,9.846S157.932,129.969,163.446,129.969z
|
||||
M244.185,126.031h157.538c4.332,0,7.877-3.545,7.877-7.877s-3.545-7.877-7.877-7.877H244.185c-4.332,0-7.877,3.545-7.877,7.877
|
||||
S239.852,126.031,244.185,126.031z M401.723,141.785H244.185c-4.332,0-7.877,3.545-7.877,7.877s3.545,7.877,7.877,7.877h157.538
|
||||
c4.332,0,7.877-3.545,7.877-7.877C409.6,145.329,406.055,141.785,401.723,141.785z M362.338,173.292H244.185
|
||||
c-4.332,0-7.877,3.545-7.877,7.877s3.545,7.877,7.877,7.877h118.154c4.332,0,7.877-3.545,7.877-7.877
|
||||
C370.215,176.837,366.671,173.292,362.338,173.292z"/>
|
||||
<path style="fill:#E2574C;" d="M313.502,43.323l25.206-31.508h55.138L368.64,43.323H313.502z M108.702,43.323l25.206-31.508h55.138
|
||||
L163.84,43.323H108.702z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
160
static/img/social/gitea.svg
Normal file
@@ -0,0 +1,160 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 135.46667 135.46667"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
sodipodi:docname="logo.svg"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
inkscape:export-filename=""
|
||||
inkscape:export-xdpi="48.000004"
|
||||
inkscape:export-ydpi="48.000004">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="418.13805"
|
||||
inkscape:cy="177.57445"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer2"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
width="256px"
|
||||
showguides="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1137"
|
||||
inkscape:window-x="1912"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:pagecheckerboard="false"
|
||||
inkscape:measure-start="283.373,243.952"
|
||||
inkscape:measure-end="290.267,236.527">
|
||||
<sodipodi:guide
|
||||
position="0,0"
|
||||
orientation="0,512"
|
||||
id="guide3699"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="135.46667,0"
|
||||
orientation="-512,0"
|
||||
id="guide3701"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="135.46667,135.46667"
|
||||
orientation="0,-512"
|
||||
id="guide3703"
|
||||
inkscape:locked="false" />
|
||||
<sodipodi:guide
|
||||
position="0,135.46667"
|
||||
orientation="512,0"
|
||||
id="guide3705"
|
||||
inkscape:locked="false" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-161.53334)"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:#609926;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z"
|
||||
id="path3722"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sscccccsccsc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2"
|
||||
style="display:inline">
|
||||
<rect
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.24757317;stroke-opacity:1"
|
||||
id="rect4599"
|
||||
width="34.762054"
|
||||
height="34.762054"
|
||||
x="87.508659"
|
||||
y="18.291576"
|
||||
transform="rotate(25.914715)"
|
||||
ry="5.4825778" />
|
||||
<path
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.26644793px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z"
|
||||
id="path4525"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3"
|
||||
style="display:inline">
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g4539">
|
||||
<circle
|
||||
transform="rotate(-19.796137)"
|
||||
r="3.4745038"
|
||||
cy="90.077766"
|
||||
cx="49.064713"
|
||||
id="path4606"
|
||||
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
|
||||
<circle
|
||||
transform="rotate(-19.796137)"
|
||||
r="3.4745038"
|
||||
cy="102.1049"
|
||||
cx="36.810425"
|
||||
id="path4606-3"
|
||||
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
|
||||
<circle
|
||||
transform="rotate(-19.796137)"
|
||||
r="3.4745038"
|
||||
cy="111.43928"
|
||||
cx="46.484283"
|
||||
id="path4606-1"
|
||||
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-opacity:1" />
|
||||
<rect
|
||||
transform="rotate(26.024158)"
|
||||
y="18.061695"
|
||||
x="97.333458"
|
||||
height="27.261492"
|
||||
width="2.6726954"
|
||||
id="rect4629-8"
|
||||
style="fill:#609926;fill-opacity:1;stroke:none;stroke-width:0.27444693;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4514"
|
||||
d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244"
|
||||
style="fill:none;stroke:#609926;stroke-width:2.68000007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
59
static/img/social/github.svg
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="438.549px" height="438.549px" viewBox="0 0 438.549 438.549" style="enable-background:new 0 0 438.549 438.549;"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M409.132,114.573c-19.608-33.596-46.205-60.194-79.798-79.8C295.736,15.166,259.057,5.365,219.271,5.365
|
||||
c-39.781,0-76.472,9.804-110.063,29.408c-33.596,19.605-60.192,46.204-79.8,79.8C9.803,148.168,0,184.854,0,224.63
|
||||
c0,47.78,13.94,90.745,41.827,128.906c27.884,38.164,63.906,64.572,108.063,79.227c5.14,0.954,8.945,0.283,11.419-1.996
|
||||
c2.475-2.282,3.711-5.14,3.711-8.562c0-0.571-0.049-5.708-0.144-15.417c-0.098-9.709-0.144-18.179-0.144-25.406l-6.567,1.136
|
||||
c-4.187,0.767-9.469,1.092-15.846,1c-6.374-0.089-12.991-0.757-19.842-1.999c-6.854-1.231-13.229-4.086-19.13-8.559
|
||||
c-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559
|
||||
c-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-0.951-2.568-2.098-3.711-3.429c-1.142-1.331-1.997-2.663-2.568-3.997
|
||||
c-0.572-1.335-0.098-2.43,1.427-3.289c1.525-0.859,4.281-1.276,8.28-1.276l5.708,0.853c3.807,0.763,8.516,3.042,14.133,6.851
|
||||
c5.614,3.806,10.229,8.754,13.846,14.842c4.38,7.806,9.657,13.754,15.846,17.847c6.184,4.093,12.419,6.136,18.699,6.136
|
||||
c6.28,0,11.704-0.476,16.274-1.423c4.565-0.952,8.848-2.383,12.847-4.285c1.713-12.758,6.377-22.559,13.988-29.41
|
||||
c-10.848-1.14-20.601-2.857-29.264-5.14c-8.658-2.286-17.605-5.996-26.835-11.14c-9.235-5.137-16.896-11.516-22.985-19.126
|
||||
c-6.09-7.614-11.088-17.61-14.987-29.979c-3.901-12.374-5.852-26.648-5.852-42.826c0-23.035,7.52-42.637,22.557-58.817
|
||||
c-7.044-17.318-6.379-36.732,1.997-58.24c5.52-1.715,13.706-0.428,24.554,3.853c10.85,4.283,18.794,7.952,23.84,10.994
|
||||
c5.046,3.041,9.089,5.618,12.135,7.708c17.705-4.947,35.976-7.421,54.818-7.421s37.117,2.474,54.823,7.421l10.849-6.849
|
||||
c7.419-4.57,16.18-8.758,26.262-12.565c10.088-3.805,17.802-4.853,23.134-3.138c8.562,21.509,9.325,40.922,2.279,58.24
|
||||
c15.036,16.18,22.559,35.787,22.559,58.817c0,16.178-1.958,30.497-5.853,42.966c-3.9,12.471-8.941,22.457-15.125,29.979
|
||||
c-6.191,7.521-13.901,13.85-23.131,18.986c-9.232,5.14-18.182,8.85-26.84,11.136c-8.662,2.286-18.415,4.004-29.263,5.146
|
||||
c9.894,8.562,14.842,22.077,14.842,40.539v60.237c0,3.422,1.19,6.279,3.572,8.562c2.379,2.279,6.136,2.95,11.276,1.995
|
||||
c44.163-14.653,80.185-41.062,108.068-79.226c27.88-38.161,41.825-81.126,41.825-128.906
|
||||
C438.536,184.851,428.728,148.168,409.132,114.573z"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
44
static/img/social/linkedin.svg
Normal file
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 382 382" style="enable-background:new 0 0 382 382;" xml:space="preserve">
|
||||
<path style="fill:#0077B7;" d="M347.445,0H34.555C15.471,0,0,15.471,0,34.555v312.889C0,366.529,15.471,382,34.555,382h312.889
|
||||
C366.529,382,382,366.529,382,347.444V34.555C382,15.471,366.529,0,347.445,0z M118.207,329.844c0,5.554-4.502,10.056-10.056,10.056
|
||||
H65.345c-5.554,0-10.056-4.502-10.056-10.056V150.403c0-5.554,4.502-10.056,10.056-10.056h42.806
|
||||
c5.554,0,10.056,4.502,10.056,10.056V329.844z M86.748,123.432c-22.459,0-40.666-18.207-40.666-40.666S64.289,42.1,86.748,42.1
|
||||
s40.666,18.207,40.666,40.666S109.208,123.432,86.748,123.432z M341.91,330.654c0,5.106-4.14,9.246-9.246,9.246H286.73
|
||||
c-5.106,0-9.246-4.14-9.246-9.246v-84.168c0-12.556,3.683-55.021-32.813-55.021c-28.309,0-34.051,29.066-35.204,42.11v97.079
|
||||
c0,5.106-4.139,9.246-9.246,9.246h-44.426c-5.106,0-9.246-4.14-9.246-9.246V149.593c0-5.106,4.14-9.246,9.246-9.246h44.426
|
||||
c5.106,0,9.246,4.14,9.246,9.246v15.655c10.497-15.753,26.097-27.912,59.312-27.912c73.552,0,73.131,68.716,73.131,106.472
|
||||
L341.91,330.654L341.91,330.654z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
static/img/social/mastodon.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="61.076954mm" height="65.47831mm" viewBox="0 0 216.4144 232.00976"><path d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915" fill="#3088d4"/><path d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675" fill="#fff"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
1
static/img/social/reddit.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><path fill="#FFF" d="M12.193 19.555c-1.94-1.741-4.79-1.727-6.365.029-1.576 1.756-1.301 5.023.926 6.632L12.193 19.555zM35.807 19.555c1.939-1.741 4.789-1.727 6.365.029 1.575 1.756 1.302 5.023-.927 6.632L35.807 19.555zM38.32 6.975A3.5 3.5 0 1 0 38.32 13.975 3.5 3.5 0 1 0 38.32 6.975z"/><path fill="#FFF" d="M24.085 15.665000000000001A18.085 12.946 0 1 0 24.085 41.557A18.085 12.946 0 1 0 24.085 15.665000000000001Z"/><g><path fill="#D84315" d="M30.365 23.506A2.884 2.884 0 1 0 30.365 29.274 2.884 2.884 0 1 0 30.365 23.506zM17.635 23.506A2.884 2.884 0 1 0 17.635 29.274 2.884 2.884 0 1 0 17.635 23.506z"/></g><g><path fill="#37474F" d="M24.002 34.902c-3.252 0-6.14-.745-8.002-1.902 1.024 2.044 4.196 4 8.002 4 3.802 0 6.976-1.956 7.998-4C30.143 34.157 27.254 34.902 24.002 34.902zM41.83 27.026l-1.17-1.621c.831-.6 1.373-1.556 1.488-2.623.105-.98-.157-1.903-.721-2.531-.571-.637-1.391-.99-2.307-.994-.927.013-1.894.365-2.646 1.041l-1.336-1.488c1.123-1.008 2.545-1.523 3.991-1.553 1.488.007 2.833.596 3.786 1.658.942 1.05 1.387 2.537 1.221 4.081C43.961 24.626 43.121 26.096 41.83 27.026zM6.169 27.026c-1.29-.932-2.131-2.401-2.306-4.031-.166-1.543.279-3.03 1.221-4.079.953-1.062 2.297-1.651 3.785-1.658.009 0 .018 0 .027 0 1.441 0 2.849.551 3.965 1.553l-1.336 1.488c-.753-.676-1.689-1.005-2.646-1.041-.916.004-1.735.357-2.306.994-.563.628-.826 1.55-.721 2.53.115 1.067.657 2.023 1.488 2.624L6.169 27.026zM25 16.84h-2c0-2.885 0-10.548 4.979-10.548 2.154 0 3.193 1.211 3.952 2.096.629.734.961 1.086 1.616 1.086h1.37v2h-1.37c-1.604 0-2.453-.99-3.135-1.785-.67-.781-1.198-1.398-2.434-1.398C25.975 8.292 25 11.088 25 16.84z"/><path fill="#37474F" d="M24.085 16.95c9.421 0 17.085 5.231 17.085 11.661 0 6.431-7.664 11.662-17.085 11.662S7 35.042 7 28.611C7 22.181 14.664 16.95 24.085 16.95M24.085 14.95C13.544 14.95 5 21.066 5 28.611c0 7.546 8.545 13.662 19.085 13.662 10.54 0 19.085-6.116 19.085-13.662C43.17 21.066 34.625 14.95 24.085 14.95L24.085 14.95zM38.32 7.975c1.379 0 2.5 1.122 2.5 2.5s-1.121 2.5-2.5 2.5-2.5-1.122-2.5-2.5S36.941 7.975 38.32 7.975M38.32 5.975c-2.484 0-4.5 2.015-4.5 4.5s2.016 4.5 4.5 4.5c2.486 0 4.5-2.015 4.5-4.5S40.807 5.975 38.32 5.975L38.32 5.975z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
1
static/img/social/twitter.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="240px" height="240px"><linearGradient id="_osn9zIN2f6RhTsY8WhY4a" x1="10.341" x2="40.798" y1="8.312" y2="38.769" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2aa4f4"/><stop offset="1" stop-color="#007ad9"/></linearGradient><path fill="url(#_osn9zIN2f6RhTsY8WhY4a)" d="M46.105,11.02c-1.551,0.687-3.219,1.145-4.979,1.362c1.789-1.062,3.166-2.756,3.812-4.758 c-1.674,0.981-3.529,1.702-5.502,2.082C37.86,8.036,35.612,7,33.122,7c-4.783,0-8.661,3.843-8.661,8.582 c0,0.671,0.079,1.324,0.226,1.958c-7.196-0.361-13.579-3.782-17.849-8.974c-0.75,1.269-1.172,2.754-1.172,4.322 c0,2.979,1.525,5.602,3.851,7.147c-1.42-0.043-2.756-0.438-3.926-1.072c0,0.026,0,0.064,0,0.101c0,4.163,2.986,7.63,6.944,8.419 c-0.723,0.198-1.488,0.308-2.276,0.308c-0.559,0-1.104-0.063-1.632-0.158c1.102,3.402,4.299,5.889,8.087,5.963 c-2.964,2.298-6.697,3.674-10.756,3.674c-0.701,0-1.387-0.04-2.065-0.122C7.73,39.577,12.283,41,17.171,41 c15.927,0,24.641-13.079,24.641-24.426c0-0.372-0.012-0.742-0.029-1.108C43.483,14.265,44.948,12.751,46.105,11.02"/></svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
1
static/pdf
Submodule
104
static/server-table.js
Normal file
@@ -0,0 +1,104 @@
|
||||
const log = console.log
|
||||
|
||||
const headerKeys = {
|
||||
"status": "Status",
|
||||
"url": "URL",
|
||||
"description": "Description",
|
||||
"repo": "Repository"
|
||||
}
|
||||
const keyOrder = ["status", "url", "description", "repo"]
|
||||
|
||||
const generateTableHead = table => {
|
||||
let thead = table.createTHead();
|
||||
let row = thead.insertRow();
|
||||
keyOrder.forEach(key => {
|
||||
let th = document.createElement("th");
|
||||
th.textContent = headerKeys[key];
|
||||
row.appendChild(th);
|
||||
})
|
||||
}
|
||||
|
||||
const generateTable = (table, data) => {
|
||||
data.forEach(elem => {
|
||||
let row = table.insertRow();
|
||||
keyOrder.forEach(key => {
|
||||
const cell = row.insertCell();
|
||||
cell.className = key;
|
||||
const aElem = document.createElement('a')
|
||||
aElem.target = '_blank'
|
||||
switch (key) {
|
||||
case 'status':
|
||||
// cell.textContent = ((elem[key] == 'up') ? '🗸' : '✗')
|
||||
const statusIcon = document.createElement('img')
|
||||
statusIcon.src = '/img/server/' + ((elem[key] == 'up') ? 'check' : 'x') + '.svg'
|
||||
cell.appendChild(statusIcon)
|
||||
break
|
||||
case 'url':
|
||||
aElem.href = elem[key]
|
||||
aElem.textContent = elem['shortUrl']
|
||||
cell.appendChild(aElem)
|
||||
break
|
||||
case 'description':
|
||||
cell.innerHTML = elem[key]
|
||||
break
|
||||
case 'repo':
|
||||
aElem.href = elem['repoUrl']
|
||||
aElem.textContent = elem[key]
|
||||
cell.appendChild(aElem)
|
||||
break
|
||||
default:
|
||||
cell.textContent = elem[key]
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const getDurationSince = (date, verbose) => {
|
||||
const milli = Math.abs(Date.now() - date)
|
||||
let mins = Math.floor(milli/1000/60)
|
||||
const days = Math.floor(mins/60/24)
|
||||
mins %= 60*24
|
||||
const hours = Math.floor(mins/60)
|
||||
mins %= 60
|
||||
|
||||
let dayString = ''
|
||||
let hourString = ''
|
||||
let minString = ''
|
||||
if (days > 0) {
|
||||
dayString += days
|
||||
if (!verbose) {
|
||||
dayString += 'd '
|
||||
} else {
|
||||
dayString += (days == 1) ? ' day' : ' days'
|
||||
dayString += ', '
|
||||
}
|
||||
}
|
||||
if (hours > 0) {
|
||||
hourString += hours
|
||||
if (!verbose) {
|
||||
hourString += 'h '
|
||||
} else {
|
||||
hourString += (hours == 1) ? ' hour' : ' hours'
|
||||
hourString += ', '
|
||||
}
|
||||
}
|
||||
minString += (mins > 0) ? mins: '0'
|
||||
if (!verbose) {
|
||||
minString += 'm'
|
||||
} else {
|
||||
minString += (mins == 1) ? ' minute' : ' minutes'
|
||||
}
|
||||
return dayString + hourString + minString
|
||||
}
|
||||
|
||||
fetch("/server-apps.json")
|
||||
.then(response => response.json())
|
||||
.then(json => {
|
||||
let table = document.querySelector("table");
|
||||
generateTable(table, json['sites']);
|
||||
generateTableHead(table);
|
||||
document.querySelector('#last-updated-time').textContent =
|
||||
getDurationSince(new Date(json['updateTime']), false) + ' ago.'
|
||||
document.querySelector('#server-uptime-time').textContent =
|
||||
getDurationSince(new Date(json['upSince']), true) + '.'
|
||||
});
|
||||