Compare commits

...

2 Commits

Author SHA1 Message Date
8b794bfa8e Resume: add skills, improve project descriptions 2019-10-05 05:51:18 -04:00
d14bcf3c8f Reduce font size across site
- change footer background to line above

Resume:
- add LinkedIn
- fix Unicode expand icon not showing on mobile
2019-10-05 05:50:17 -04:00
11 changed files with 438 additions and 203 deletions

View File

@@ -2,6 +2,7 @@
// base colors {{{ // // base colors {{{ //
$base02: #515151;
$base03: #747369; $base03: #747369;
$base04: #a09f93; $base04: #a09f93;
$base05: #d3d0c8; $base05: #d3d0c8;
@@ -34,30 +35,36 @@ $base-dark-orange: #d27b53;
// mixins {{{ // // mixins {{{ //
$max-page-width: 52em; // $max-page-width: 52em;
$max-page-width: 45em;
$phone-width: 800px; $phone-width: 800px;
@mixin side-padding-rem($n) { @mixin side-padding-rem($n) {// {{{
padding-left: $n * 1rem; padding-left: $n * 1rem;
padding-right: $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-top: $n * 1rem;
padding-bottom: $n * 1rem; padding-bottom: $n * 1rem;
} }// }}}
@mixin vert-margin-em($n) { @mixin vert-margin-rem($n) {// {{{
margin-top: $n * 1em; margin-top: $n * 1rem;
margin-bottom: $n * 1em; margin-bottom: $n * 1rem;
} }// }}}
@mixin auto-center() { @mixin auto-center() {// {{{
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
} }// }}}
@mixin article-body() { @mixin article-body() {// {{{
/* background-color: #e6e6fa; */ /* background-color: #e6e6fa; */
background-color: #cbbeb5; background-color: #cbbeb5;
color: #2d2d2d; color: #2d2d2d;
@@ -69,9 +76,9 @@ $phone-width: 800px;
@media (max-width: $max-page-width) { @media (max-width: $max-page-width) {
@include side-padding-rem(2); @include side-padding-rem(2);
} }
} }// }}}
@mixin a-color($color) { @mixin a-color($color) {// {{{
a { a {
color: $color; color: $color;
&:visited { &:visited {
@@ -81,7 +88,7 @@ $phone-width: 800px;
color: $color; color: $color;
} }
} }
} }// }}}
// }}} mixins // // }}} mixins //
@@ -97,7 +104,8 @@ body {
background-color: $background-color; background-color: $background-color;
color: $color; color: $color;
line-height: 1.5; line-height: 1.5;
font-size: 100%; // font-size: 100%;
font-size: 15px;
/* font-family: 'Source Code Pro', monospace; */ /* font-family: 'Source Code Pro', monospace; */
font-family: 'Hack', monospace; font-family: 'Hack', monospace;
display: flex; display: flex;
@@ -153,25 +161,43 @@ header {
} }
footer { footer {
// base {{{ //
@include a-color(#747369);
// background-color: #393939;
// max-width: $max-page-width;
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 1rem; $vertical-margin: .2em;
text-align: center; text-align: center;
font-size: 0.9em; font-size: 0.8em;
color: #747369; color: #747369;
// bottom: 0; // bottom: 0;
// position: absolute; // position: absolute;
// width: 100%; // width: 100%;
.container { // }}} base //
background-color: #393939;
max-width: 62em; .container {// {{{
// max-width: $max-page-width;
// min-width: $max-page-width;
@include auto-center(); @include auto-center();
@include vert-padding-rem(.1); // @include vert-padding-rem(.1);
@include side-padding-rem(0);
#footer-row {
// background-color: #393939;
} }
$vertical-margin: .2em; #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 { #copyright {
// padding-left: .85em;
padding-left: $side-padding;
position: relative; position: relative;
top: 2px; top: 2px;
@include a-color(#747369); @include a-color(#747369);
@@ -179,15 +205,18 @@ footer {
#social-icons { #social-icons {
position: relative; position: relative;
padding-left: 3px; padding-right: $side-padding;
// padding-right: .9em;
img { img {
height: 1.5em; height: 1.5em;
@include vert-margin-em(.2); @include vert-margin-rem(.2);
padding-left: .5em; padding-left: .5em;
opacity: .6; opacity: .6;
} }
} }
}
}// }}}
@media (max-width: $max-page-width) { @media (max-width: $max-page-width) {
margin-top: 0; margin-top: 0;
@@ -215,8 +244,20 @@ p {
margin-bottom: 1rem; margin-bottom: 1rem;
} }
h1 { font-size: 2rem } h1 {
h2 { font-size: 1.5rem } 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 } h3 { font-size: 1.25rem }
h4 { font-size: 1rem } h4 { font-size: 1rem }
h5 { font-size: .875rem } h5 { font-size: .875rem }
@@ -243,10 +284,6 @@ header {// {{{
} }
}// }}} }// }}}
footer {// {{{
@include a-color(#747369);
}// }}}
.page-not-found {// {{{ .page-not-found {// {{{
h1 { h1 {
text-align: center; text-align: center;
@@ -273,11 +310,12 @@ footer {// {{{
#homepage {// {{{ #homepage {// {{{
#about { #about {
font-size: 1.25rem; font-size: 1.1rem;
h2 { h2 {
margin-top: 1.25rem; margin-top: 1.25rem;
font-size: 2rem; // font-size: 2rem;
font-size: 1.9rem;
color: $base-yellow; color: $base-yellow;
text-align: center; text-align: center;
@@ -445,46 +483,101 @@ footer {// {{{
}// }}} }// }}}
#contact-info {// {{{ #contact-info {// {{{
@include vert-padding-rem(0.5); @include side-margin-em(0);
display: flex; // @include vert-padding-rem(0.5);
align-content: center; @include a-color($base-sky-blue);
// min-width: $max-page-width;
@media (min-width: 1200px) {
.container{
min-width: $max-page-width;
}
}
div { font-size: .9em;
flex-grow: 1;
.row {
// flex-grow: 1;
color: $base05; color: $base05;
img { img {
height: 1em; 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;
} }
} }
#email {
text-align: center;
}
#website {
text-align: right;
}
}// }}} }// }}}
#resume {// {{{ #resume {// {{{
a { a {// {{{
text-decoration: none; text-decoration: none;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }
} }// }}}
h1 { h1 {// {{{
color: $base-orange; color: $base-orange;
} margin-top: 1rem;
.date { @media (max-width: $phone-width) {
margin-top: .75rem;
}
}// }}}
h2 {// {{{
color: $base-orange;
margin-top: .5rem;
@media (max-width: $phone-width) {
font-size: 1.2em;
margin-top: .75rem;
}
}// }}}
h4 {// {{{
color: $base-yellow;
margin-top: .5rem;
@media (max-width: $phone-width) {
font-size: 1.2em;
margin-top: .75rem;
}
}// }}}
.date {// {{{
padding-top: .8em;
float: right; float: right;
color: $base03; color: $base03;
@media (max-width: $phone-width) {
padding-top: 0em;
}
}// }}}
#projects {// {{{
h1 {
margin-bottom: 3px;
} }
.project { .project {// {{{
@include vert-padding-rem(.2); @include vert-padding-rem(.2);
h2 { h2 {
@@ -502,7 +595,15 @@ footer {// {{{
} }
} }
.btn { .down-triangle {
// fill: blue;
height: 1.2em;
position: relative;
top: -3px;
left: -3px;
}
.btn {// {{{
display: inline; display: inline;
background-color: transparent; background-color: transparent;
margin-bottom: 5px; margin-bottom: 5px;
@@ -512,12 +613,37 @@ footer {// {{{
outline: none !important; outline: none !important;
box-shadow: none; box-shadow: none;
} }
} }// }}}
// }}}
// [id^="details-"] { // [id^="details-"] {
// margin-top: .5em; // 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;
}
}// }}} }// }}}
@@ -577,12 +703,12 @@ footer {// {{{
h1.site-title {// {{{ h1.site-title {// {{{
text-align: center; text-align: center;
/* font-size: 3.5em; */ font-size: 4.2em;
font-size: 4.8em;
// color: #66cccc; // color: #66cccc;
color: $base05; color: $base05;
margin-top: 1rem; // margin-top: 1rem;
margin-bottom: 0.5rem; // margin-bottom: 0.75rem;
@include vert-margin-rem(.75);
@include a-color($base-sky-blue); @include a-color($base-sky-blue);
a { a {
@@ -594,15 +720,22 @@ h1.site-title {// {{{
} }
@media (max-width: $phone-width) { @media (max-width: $phone-width) {
// font-size: 3em; font-size: 3.5em;
@include vert-margin-rem(.3);
// font-size: 2.5em; // font-size: 2.5em;
font-size: 2em; // font-size: 2em;
.surrounding {
display: none;
}
} }
}// }}} }// }}}
.hero-logo img { .hero-logo img {
margin-top: 0.5rem; margin-top: 0.5rem;
width: 100%; width: 100%;
// display: none;
// width: $max-page-width;
} }
.nav-bar {// {{{ .nav-bar {// {{{

View File

@@ -6,7 +6,7 @@ layout: single
--- ---
<!--- Intro {{{ --> <!--- Intro {{{ -->
![desktop-screenshot](https://i.imgur.com/Fpsr8Fc.png) ![desktop-screenshot](https://img.khkm.tk/uploads/big/b2bd45e8f436d389ecb787b5c61c951a.png)
*Screenshot from my dual-monitor setup.* *Screenshot from my dual-monitor setup.*
This [repository][lc-repo] contains the dotfiles to increase my workflow This [repository][lc-repo] contains the dotfiles to increase my workflow
@@ -34,8 +34,10 @@ efficiency. They are also for my Linux [rice][ricing_explanation].
<!--- Setup {{{ --> <!--- Setup {{{ -->
## Setup ## Setup
I use I use [chezmoi] to manage varying configs for different machines with
[Stow](http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html) a single branch.
to symbolically link the configs/dotfiles.
[chezmoi]: https://github.com/twpayne/chezmoi
<!--- }}} Setup --> <!--- }}} Setup -->

View File

@@ -12,19 +12,42 @@ full-stack web dev, DevOps or system administration.
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
{{% resume/section skills %}}<!--- {{{ -->
#### Languages
- **Bash**, C, **CSS**, C++, **Fish**, Godot, **HTML5**, **Python**,
Java, **Javascript (ES6)**, **Sass**
#### Frameworks
- **Bootstrap**, **Django**, **Node.js**, **PostgreSQL**
#### Services
- **DigitalOcean**, **Linux**, Heroku, **REST/Web API's**
#### Tools
- **Arch Linux**, Android Studio, **Debian**, **Command Line**,
**Git**, IntelliJ IDEA, **Pycharm**, **NGINX**, **SFTP**, **SSH**,
**Vim**
{{% /resume/section %}}<!--- }}} -->
{{% resume/section projects %}}<!--- {{{ --> {{% resume/section projects %}}<!--- {{{ -->
<!--- Spotify Graphs {{{ --> <!--- Spotify Graphs {{{ -->
{{% resume/project name="Spotify Visualizer" {{% resume/project name="Spotify Graphs"
url="https://github.com/Kevin-Mok/spotify-lib-vis" date="July 2018" show="true" %}} url="https://github.com/Kevin-Mok/spotify-lib-vis" date="June 2018 — July 2018"
show="true" %}}
- Web app that scans your Spotify library using their API to produce - Scan tracks from user's library using Spotify API and organize data into
[**d3** graphs][d3 graph examples] to visualize the artists, genres and database.
features of tracks in your library. - Created and tested various __PostgreSQL__ schemas to increase efficiency for
- Can also keep track of your listening history. Currently runs as a `cron` use cases.
job on my local machine to keep track of my own. - Produce bubble chart and (stacked) bar chart in [**d3** graphs][d3 graph examples]
- Uses __Django__ and __PostgreSQL__ for back-end. to visualize the artists, genres and features of tracks in library.
- Implement functionality to keep track of user's listening history. Set up
`cron` job on my local machine to keep track of my own.
- Uses __Django__ for backend.
[d3 graph examples]: https://github.com/d3/d3/wiki/Gallery [d3 graph examples]: https://github.com/d3/d3/wiki/Gallery
@@ -32,6 +55,27 @@ url="https://github.com/Kevin-Mok/spotify-lib-vis" date="July 2018" show="true"
<!--- Spotify Graphs }}} --> <!--- Spotify Graphs }}} -->
<!--- Grocery Finder {{{ -->
{{% resume/project name="Grocery Finder"
url="https://github.com/Kevin-Mok/grocery-finder" date="Feb. 2019 — Apr. 2019"
show="true" %}}
- PoC 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 member's pull requests.
[Grocery Finder Heroku]: http://www.grocery-finder.ml
{{% /resume/project %}}
<!--- Grocery Finder }}} -->
<!--- ParsaFood {{{ --> <!--- ParsaFood {{{ -->
{{% resume/project name="ParsaFood" {{% resume/project name="ParsaFood"
@@ -40,70 +84,70 @@ show="true" %}}
- **Android** app that reads ingredient labels and detects any dietary - **Android** app that reads ingredient labels and detects any dietary
restrictions/allergies. restrictions/allergies.
- Designed user interface and linked various functionality together.
- Made during a 24-hour [food-themed hackathon][Platterz Hackathon event] - 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 in a group with two other members. Came in 2<sup>nd</sup> place and won
an [Oculus Rift][Oculus Rift Amazon]. an [Oculus Rift][Oculus Rift Amazon].
- Came up with the idea based on [personal experience][Parsafood motivation].
[Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood [Parsafood repo]: https://github.com/Kevin-Mok/ParsaFood
[Parsafood motivation]: https://github.com/Kevin-Mok/ParsaFood#motivation [Platterz Hackathon event]:
[Platterz Hackathon event]: https://www.eventbrite.com/e/platterz-hackathon-tickets-42682237722 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 [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 %}} {{% /resume/project %}}
<!--- ParsaFood }}} --> <!--- ParsaFood }}} -->
<!--- Grocery Finder {{{ -->
{{% resume/project name="Grocery Finder"
url="https://github.com/Kevin-Mok/grocery-finder" date="April 2019"
show="true" %}}
- Proof of concept for a web app that finds the best supermarket for
your needs based on the total price of your cart items and distance
from you.
- Responsive front-end using **Bootstrap**. Uses **Node.js** and
**MongoDB** for back-end.
- Currently deployed on [**Heroku**][Grocery Finder Heroku].
- Took on role as project leader to prioritize and delegate tasks
while
also implementing a majority of the core features.
[Grocery Finder Heroku]: http://www.grocery-finder.ml
{{% /resume/project %}}
<!--- Grocery Finder }}} -->
<!--- TrapBot {{{ --> <!--- TrapBot {{{ -->
{{% resume/project name="TrapBot" {{% resume/project name="TrapBot"
url="https://github.com/Kevin-Mok/TrapBot" date="March 2018" %}} url="https://github.com/Kevin-Mok/TrapBot" date="March 2018" %}}
- reddit bot that looks for comments with song names and responds with - Use reddit API wrapper in **Python** to scan music subreddits for user
their respective SoundCloud links. comments containing common track listing formats.
- Received positive feedback from users who saw the bot's posts. - Match detected track name and artists to track on SoundCloud using another
- Uses __Python__ API wrappers for SoundCloud and reddit. Python API wrapper.
- Respond to original poster's comment with formatted list of tracks found.
- Received positive comment from users who replied to the bot's posts.
{{% /resume/project %}} {{% /resume/project %}}
<!--- Grocery Finder }}} --> <!--- 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 }}} -->
<!--- Super ADA Bros. {{{ --> <!--- Super ADA Bros. {{{ -->
{{% resume/project name="Super ADA Bros" {{% resume/project name="Super ADA Bros"
url="https://github.com/Kevin-Mok/SuperADABros" date="May 2019" %}} url="https://github.com/Kevin-Mok/SuperADABros" date="May 2019" %}}
- Clone of Super Mario Bros 1-1, but Mario is mobility-impaired and - Designed clone of Super Mario Bros 1-1, but Mario is mobility-impaired and
uses ramps to get through the level. uses ramps to get through the level.
- Able to be played using only head movement by getting input from a - Uses **OpenCV** to track player's head movement which is then translated to
face-tracking script (**OpenCV**). in-game movement. [Video Demo]
- Implemented in [**Godot**][Godot site], an open-source game engine. - Implemented in [**Godot**][Godot site], an open-source game engine.
- Made during a 24-hour [accessibility-themed hackathon][PC Hacks event]. - Made during a 24-hour [accessibility-themed hackathon][PC Hacks event].
[PC Hacks event]: https://pchacks19.devpost.com/ [PC Hacks event]: https://pchacks19.devpost.com/
[Godot site]: https://godotengine.org [Godot site]: https://godotengine.org
[Video Demo]: https://youtu.be/vRdENLGrBqM
{{% /resume/project %}} {{% /resume/project %}}
@@ -112,8 +156,20 @@ url="https://github.com/Kevin-Mok/SuperADABros" date="May 2019" %}}
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ --> {{% resume/section "Work Experience" %}}<!--- {{{ -->
- **University of Toronto**: Computer Science Specialist <div class="date">2017-2021</div> {{% resume/education name="Philpott Children's Tennis" title="Head Instructor" date="2013—2015" %}}
- Ran 8-week summer camp for inner-city youth with assistant coach.
- Prepared daily lesson plans for 4 different age groups of children
with varying skill levels and needs.
- Supervised and ensured the safety and enjoyment of up to 20 children at once.
{{% /resume/section %}}<!--- }}} --> {{% /resume/section %}}<!--- }}} -->
{{% resume/section education %}}<!--- {{{ -->
{{% resume/education name="University of Toronto" title="Computer Science Specialist" date="2017-2021" %}}
{{% /resume/section %}}<!--- }}} -->
<!-- vim: fdm=marker -->

View File

@@ -7,7 +7,8 @@
<footer> <footer>
<div class="container"> <div class="container">
<!-- <span class="copyright">&copy; {{ .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">&copy; {{ .Site.LastChange.Year }} {{ .Site.Title }} - <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></span> -->
<div class="row justify-content-center"> <div id="footer-row" class="row justify-content-center">
<span id="footer-content" class="name">
<span id="copyright" class="col-xs-6"> <span id="copyright" class="col-xs-6">
&copy; {{ now.Year }} {{ .Site.Title }} · &copy; {{ now.Year }} {{ .Site.Title }} ·
<!-- <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> · --> <!-- <a rel="license" href="http://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> · -->
@@ -18,7 +19,7 @@
<img src="{{ "img/social/github.svg" | relURL }}" <img src="{{ "img/social/github.svg" | relURL }}"
alt="github-logo"> alt="github-logo">
</a> </a>
<a href="https://www.linkedin.com/in/kevin-kh-mok" target="_blank"> <a href="https://www.linkedin.com/in/Kev-Mok" target="_blank">
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-logo"> <img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-logo">
</a> </a>
<a href="https://git.kevin-mok.com/" target="_blank"> <a href="https://git.kevin-mok.com/" target="_blank">
@@ -33,13 +34,12 @@
alt="mastodon-logo"> alt="mastodon-logo">
</a> </a>
</span> </span>
<span id="social-icons" class="col-xs-2"> <span class="col-xs-2">
</span>
</span> </span>
</div> </div>
</div> </div>
</footer> </footer>
</body> </body>
</html> </html>

View File

@@ -1,7 +1,7 @@
<h1 class="site-title"> <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="base0f">e</span><span class="base09">v</span><span
class="base0a">i</span><span class="base0b">n </span><span class="base0a">i</span><span class="base0b">n </span><span
class="base0c">M</span><span class="base0d">o</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> </h1>

View File

@@ -1,7 +1,7 @@
<div id="about"> <div id="about">
<h2>Welcome to my site!</h2> <h2>Welcome to my site!</h2>
<p> <p>
I'm Kevin Mok - a 2<sup>nd</sup> year Computer Science I'm Kevin Mok - a 3<sup>rd</sup> year Computer Science
student at the University of Toronto, and I'm greatly interested in all things Linux and 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" <a href="https://www.gnu.org/philosophy/floss-and-foss.en.html"
target="_blank">FOSS/FLOSS</a>. target="_blank">FOSS/FLOSS</a>.

View File

@@ -1,15 +1,39 @@
<div id="contact-info"> <div id="contact-info" class="container">
<div id="phone-number"> <div class="row row-top justify-content-center">
<div id="phone-number" class="col text-left">
<a href="tel:647-685-2500" target="_blank">
<img src="{{ "img/resume/smartphone.svg" | relURL }}" <img src="{{ "img/resume/smartphone.svg" | relURL }}"
alt="smartphone-icon">: alt="smartphone-icon">
<a href="tel:647-685-2500" target="_blank">647-685-2500</a> <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">
<span class="url-info">
Kev-Mok
</span>
<img src="{{ "img/social/linkedin.svg" | relURL }}" alt="linkedin-icon">
</a>
</div>
</div>
<div class="row justify-content-center">
<div id="email" class="col col-left">
<a href="mailto:me@kevin-mok.com">
<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/">
<span class="url-info">
kevin-mok.com
</span>
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
</a>
</div> </div>
<div id="email">
<img src="{{ "img/resume/envelope.svg" | relURL }}" alt="envelope-icon">:
<a href="mailto:me@kevin-mok.com">me@kevin-mok.com</a>
</div>
<div id="website">
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">:
<a href="https://kevin-mok.com/">kevin-mok.com</a>
</div> </div>
</div> </div>

View File

@@ -6,8 +6,6 @@
{{ partial "resume/contact-info.html" . }} {{ partial "resume/contact-info.html" . }}
{{ partial "base/base16-logo.html" . }}
<div id="resume"> <div id="resume">
{{ .Content }} {{ .Content }}

View File

@@ -0,0 +1,13 @@
<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">
{{ .Get "title" }}
</span>
</div>

View File

@@ -1,14 +1,23 @@
<div class="project"> <div class="project">
<div class="row project-header">
<div class="col-8 text-left">
<a class="project-link" href="{{ .Get "url" }}" target="_blank"> <a class="project-link" href="{{ .Get "url" }}" target="_blank">
<img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon"> <img src="{{ "img/resume/link.svg" | relURL }}" alt="link-icon">
</a> </a>
<button class="btn" type="button" data-toggle="collapse" <button class="btn" type="button" data-toggle="collapse"
data-target="#{{ .Get "name" | lower | urlize }}-details" data-target="#{{ .Get "name" | lower | urlize }}-details"
aria-expanded="false" aria-controls="{{ .Get "name" | lower | urlize }}-details"> aria-expanded="false" aria-controls="{{ .Get "name" | lower | urlize }}-details">
<h2 class="project-title">{{ .Get "name" }} ⏷</h2> <h2 class="project-title">
{{ .Get "name" }}
<!-- <img class="down-triangle" src="{{ "img/resume/down-triangle.svg" | relURL }}" alt="link-icon"> -->
<img class="down-triangle" src="{{ "img/resume/down-triangle.png" | relURL }}" alt="link-icon">
</h2>
</button> </button>
<div class="date">{{ .Get "date" }}</div> </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 class="collapse{{ with .Get "show" }} show{{ end }}" id="{{ .Get "name" | lower | urlize }}-details">
<!-- <div class="show" id="{{ .Get "name" | lower | urlize }}-details"> -->
<div> <div>
{{ .Inner }} {{ .Inner }}
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 580 B