From 84d29ceb8d906668ce22d50944cab0043a78ea45 Mon Sep 17 00:00:00 2001 From: James Martin Date: Thu, 6 Feb 2020 15:34:02 -0800 Subject: [PATCH] Migrating from hand-written HTML to Jekyll to use shared layout code. --- .editorconfig | 8 ++ .gitignore | 7 ++ Gemfile | 4 + Gemfile.lock | 72 ++++++++++++++ README.md | 14 +++ _config.yml | 4 + _layouts/default.html | 24 +++++ _layouts/resume.html | 54 ++++++++++ contact.html | 83 ++++++---------- index.html | 31 ++---- projects/index.html | 113 +++++++++------------ projects/minecraft-clone.html | 76 ++++++-------- projects/the-mining-dead.html | 127 ++++++++++-------------- resume/index.html | 53 ++++------ resume/software-developer.html | 176 ++++++++++++--------------------- robots.txt | 2 + 16 files changed, 438 insertions(+), 410 deletions(-) create mode 100644 .editorconfig create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 100644 _config.yml create mode 100644 _layouts/default.html create mode 100644 _layouts/resume.html diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..1923d41 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,8 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.gitignore b/.gitignore index b25c15b..47d9d6e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,8 @@ +# Jekyll files +_site/ +.sass-cache/ +.jekyll-cache/ +.jekyll-metadata + +# Emacs backup files *~ diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..bbda4d2 --- /dev/null +++ b/Gemfile @@ -0,0 +1,4 @@ +source "https://rubygems.org" + +gem "jekyll-last-modified-at" +gem "jekyll-sitemap" diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..13f56f8 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,72 @@ +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + colorator (1.1.0) + concurrent-ruby (1.1.5) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + eventmachine (1.2.7) + ffi (1.12.2) + forwardable-extended (2.6.0) + http_parser.rb (0.6.0) + i18n (1.8.2) + concurrent-ruby (~> 1.0) + jekyll (4.0.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (>= 0.9.5, < 2) + jekyll-sass-converter (~> 2.0) + jekyll-watch (~> 2.0) + kramdown (~> 2.1) + kramdown-parser-gfm (~> 1.0) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (~> 3.0) + safe_yaml (~> 1.0) + terminal-table (~> 1.8) + jekyll-last-modified-at (1.2.1) + jekyll (>= 3.7, < 5.0) + posix-spawn (~> 0.3.9) + jekyll-sass-converter (2.1.0) + sassc (> 2.0.1, < 3.0) + jekyll-sitemap (1.4.0) + jekyll (>= 3.7, < 5.0) + jekyll-watch (2.2.1) + listen (~> 3.0) + kramdown (2.1.0) + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + liquid (4.0.3) + listen (3.2.1) + rb-fsevent (~> 0.10, >= 0.10.3) + rb-inotify (~> 0.9, >= 0.9.10) + mercenary (0.3.6) + pathutil (0.16.2) + forwardable-extended (~> 2.6) + posix-spawn (0.3.13) + public_suffix (4.0.3) + rb-fsevent (0.10.3) + rb-inotify (0.10.1) + ffi (~> 1.0) + rouge (3.15.0) + safe_yaml (1.0.5) + sassc (2.2.1) + ffi (~> 1.9) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + unicode-display_width (1.6.1) + +PLATFORMS + ruby + +DEPENDENCIES + jekyll-last-modified-at + jekyll-sitemap + +BUNDLED WITH + 2.1.4 diff --git a/README.md b/README.md index 34a1515..216a4ef 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,20 @@ # jamestmartin.me This is the source code for my personal website, [https://jamestmartin.me](jamestmartin.me). +## Installation +This project is built using [https://jekyllrb.com/](Jekyll), a static site generator. + +To install this website, you must first [https://jekyllrb.com/docs/installation/](install Jekyll). +Next, install all necessary modules with `bundle exec`. + +To build the site, run `bundle exec jekyll build`. +To rebuild the site continuously as updates are made, +run `bundle exec jekyll build --watch`. +The web root for the website will be `_site/`. +You may point your web server there and the site will work with no additional effort. + +To work on the site without installing full web server, use `bundle exec jekyll serve`. + ## Code Conventions All of my code is valid HTML5 and CSS3 according to ["https://html.spec.whatwg.org"](WHATWG standards) diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..32a522c --- /dev/null +++ b/_config.yml @@ -0,0 +1,4 @@ +url: "https://jamestmartin.me" +plugins: + - jekyll-last-modified-at + - jekyll-sitemap diff --git a/_layouts/default.html b/_layouts/default.html new file mode 100644 index 0000000..43f32f5 --- /dev/null +++ b/_layouts/default.html @@ -0,0 +1,24 @@ + + + +{{ page.title }} + + + + + +
+ + James T. Martin + + + +
+ +
{{ content }}
diff --git a/_layouts/resume.html b/_layouts/resume.html new file mode 100644 index 0000000..a276c58 --- /dev/null +++ b/_layouts/resume.html @@ -0,0 +1,54 @@ + + + +James T. Martin, {{ page.title }} + + + + + + +
+
+
+

James T. Martin, {{ page.resumeName }}

+ {{ page.tagline }} +
+ + +
+ + +
{{ content }}
+
+
+
diff --git a/contact.html b/contact.html index e6760e2..5cce36d 100644 --- a/contact.html +++ b/contact.html @@ -1,51 +1,32 @@ - - - -Contact Me - James T. Martin - - - - -
- - James T. Martin - - - -
- -
- -
+--- +layout: default +title: Contact Me +permalink: /contact +--- +
+
+

Contact Me

+
+
+
+
Email +
@jtmar.me, james +
+
+
Phone +
(206) 331-1994 +
+
+
GitHub +
jamestmartin +
+
+
LinkedIn +
jamestmartinme +
+
+
Location +
Renton, WA +
+
+
diff --git a/index.html b/index.html index 5649880..bc06d22 100644 --- a/index.html +++ b/index.html @@ -1,25 +1,6 @@ - - - -James T. Martin - - - - -
- - James T. Martin - - - -
- -
- TODO: About me. -
+--- +layout: default +title: James T. Martin +permalink: / +--- +TODO: About me. diff --git a/projects/index.html b/projects/index.html index 21c3e5f..3aa33c5 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1,72 +1,53 @@ - - - -Projects - James T. Martin - - - +--- +layout: default +title: Projects +permalink: /projects/ +--- +
+
+

Projects

+
-
- - James T. Martin - - - -
- -
-
+
-

Projects

+

Current

+

This is what I'm working on right now. +

+ +
+ +
+
+

On Hiatus

+

I am not currently working on these things, but intend to continue them later.

-
-
-

Current

-

This is what I'm working on right now. -

- -
+ +
-
-
-

On Hiatus

-

I am not currently working on these things, but intend to continue them later. -

+
+
+

Previous

+

+ I have worked on many things over the years. + Most of them have been lost to time; many, I've forgotten about entirely. + I learned to keep backups the hard way. + Here are some of the highlights (that I can remember): +

- -
- -
-
-

Previous

-

- I have worked on many things over the years. - Most of them have been lost to time; many, I've forgotten about entirely. - I learned to keep backups the hard way. - Here are some of the highlights (that I can remember): -

- -
    -
  • A minecraft clone, with infinite procedural worlds and multiplayer. -
  • The Mining Dead, a Fallout-themed zombie apocalypse Minecraft server, based on a custom modpack and a ton of custom code. -
  • Scratch projects from elementary school, because why not? Man, I've come a long way as a programmer since then. -
-
-
-
+ + +
diff --git a/projects/minecraft-clone.html b/projects/minecraft-clone.html index db2fb35..3904c08 100644 --- a/projects/minecraft-clone.html +++ b/projects/minecraft-clone.html @@ -1,47 +1,29 @@ - - - -Minecraft Clone - Projects - James T. Martin - - - -
- - James T. Martin - - - -
- -
-
-
-

Minecraft Clone

-
-

- In 2014, while still in middle school, - I wrote a Minecraft clone using the Unity game engine and C#. - It featured: -

    -
  • a first-person interactive editable world (duh), -
  • infinite procedural map generation using simplex noise, -
  • and a custom TCP-based multiplayer protocol. -
-

- I wrote all of the code myself, from scratch, except for one thing: the mesh generation. - For that, I began with a mesh generator and optimizer someone else wrote, - and slowly replaced it with my own code as I learned how it worked. - Ultimately, my code even produced better meshes - because my algorithm understood the greater context of the game world better (like chunk boundaries). -

- This was one of my favorite projects. I was very proud of it as a middle schooler. - Disappointingly, I lost the code when I deleted my old email address, - which made me lose access to my private BitBucket repositories. -

-
+--- +layout: default +title: Minecraft Clone +permalink: /projects/minecraft-clone +--- +
+
+

Minecraft Clone

+
+

+ In 2014, while still in middle school, + I wrote a Minecraft clone using the Unity game engine and C#. + It featured: +

+

+ I wrote all of the code myself, from scratch, except for one thing: the mesh generation. + For that, I began with a mesh generator and optimizer someone else wrote, + and slowly replaced it with my own code as I learned how it worked. + Ultimately, my code even produced better meshes + because my algorithm understood the greater context of the game world better (like chunk boundaries). +

+ This was one of my favorite projects. I was very proud of it as a middle schooler. + Disappointingly, I lost the code when I deleted my old email address, + which made me lose access to my private BitBucket repositories. +

diff --git a/projects/the-mining-dead.html b/projects/the-mining-dead.html index 301c203..d93d35f 100644 --- a/projects/the-mining-dead.html +++ b/projects/the-mining-dead.html @@ -1,74 +1,55 @@ - - - -The Mining Dead - Projects - James T. Martin - - - - -
- - James T. Martin - - - -
- -
-
-
-

The Mining Dead

-

This page is a work in progress. -

- This is also from a very long time ago (2012), so my recall is pretty poor, - which makes it especially difficult to write this article. -

- +--- +layout: default +title: The Mining Dead +permalink: /projects/the-mining-dead +--- +
+
+

The Mining Dead

+

This page is a work in progress.

- The Mining Dead was a series of loosely Fallout-themed Minecraft zombie apocalyse servers, - featuring high spawns, difficult zombies, radiation, solar flares, decayed cities, - a desert world generation without trees, crops, animals, grass, or dirt, - custom player ranks based on zombie kills, a special radio chat system, - a custom Technic Platform modpack, and a lot of rotten flesh. - Among other things. -

- Aside from being some of the most fun I've had in my life, - my takeover of the server's administration and codebase in 2012 - was what kickstarted my programming career and love for Debian GNU/Linux. - I would not be the person I am today without it. -

- This is my loose attempt at a server chronology. - This was all a long time ago, so I'm mixing up the order of things a lot. -

    -
  • The original server was founded by Skuli_Steinulf in beta 1.8. -
  • - The Tekkit Classic server was founded by Skuli. - The server had three worlds (inventories were not shared): -
      -
    • The Outlands: The conventional Mining Dead experience. -
    • The Frontier: A zombie apocalyse world with normal terrain generation and no radiation. -
    • Medieval: A standard Tekkit Classic world. -
    -
  • A short-lived Tekkit Lite server or something might've been in here? -
  • Skuli had early access to the Technic Platform. He creates a custom modpack for the server. -
  • - Skuli simultaneously founds a vanilla server, - and another server using the custom modpack featuring the Cogs of the Machine mod - instead of more conventional high-tech mods like IndustrialCraft 2. -
  • - Skuli abruptly retires from maintaining The Mining Dead. - I had no programming experience and no experience with running Minecraft servers, - but I took over anyway. I learn as I go. -
  • - TODO: The rest of the chronology, including my multiple servers, the DJ incident, - Skuli's second attempt and the ice worlds, the various attempts to succeed me, - Skuli's later servers, other servers I made, and Obamallama's servers. -
-
-
+ This is also from a very long time ago (2012), so my recall is pretty poor, + which makes it especially difficult to write this article. + + +

+ The Mining Dead was a series of loosely Fallout-themed Minecraft zombie apocalyse servers, + featuring high spawns, difficult zombies, radiation, solar flares, decayed cities, + a desert world generation without trees, crops, animals, grass, or dirt, + custom player ranks based on zombie kills, a special radio chat system, + a custom Technic Platform modpack, and a lot of rotten flesh. + Among other things. +

+ Aside from being some of the most fun I've had in my life, + my takeover of the server's administration and codebase in 2012 + was what kickstarted my programming career and love for Debian GNU/Linux. + I would not be the person I am today without it. +

+ This is my loose attempt at a server chronology. + This was all a long time ago, so I'm mixing up the order of things a lot. +

+ diff --git a/resume/index.html b/resume/index.html index b14630a..961a117 100644 --- a/resume/index.html +++ b/resume/index.html @@ -1,36 +1,17 @@ - - - -Resume - James T. Martin's - - - - -
- - James T. Martin - - - -
- -
- -
+--- +layout: default +title: Resumes +permalink: /resume/ +--- +
+
+

Resumes

+

I have different resumes for different jobs. +

+ +
diff --git a/resume/software-developer.html b/resume/software-developer.html index 7623fc9..f3e0ebf 100644 --- a/resume/software-developer.html +++ b/resume/software-developer.html @@ -1,120 +1,72 @@ - - - -James T. Martin, Software Developer - - - - +--- +layout: resume +title: Software Developer +permalink: /resume/software-developer +tagline: A self-taught programmer fond of programming language theory. +--- +
+
+

Experience

+
-
-
+
-

James T. Martin

- A self-taught programmer fond of programming language theory. +

Programming Language Design Community

+ onward
+ +
- -
-
- - -
-
-
-

Experience

-
- -
-
-

Programming Language Design Community

- onward -
- -
- -
-
-

Hazen Robotics Club

-
-
    -
  • Mentored programming at the summer robotics camp -
  • Taught club members to use Java and Git -
  • Collaborated to build robot controller programs for FTC competitions -
-
-
- -
-
-

Skills

-
+
+
+

Skills

+
+
    +
  • Languages: Java 8, Haskell, HTML5/XHTML +
  • Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing +
  • Administration: Debian GNU/Linux, Nginx +
  • APIs: REST, JSON, JSON Schema, JSON-LD, HATEOAS +
  • Security:
      -
    • Languages: Java 8, Haskell, HTML5/XHTML -
    • Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing -
    • Administration: Debian GNU/Linux, Nginx -
    • APIs: REST, JSON, JSON Schema, JSON-LD, HATEOAS -
    • Security: -
        -
      • TLS: Let's Encrypt, SSL Labs, DNS CAA, HSTS deployment -
      • Web: XSS prevention, CSRF prevention, CSP, input validation, SQL injection prevention -
      +
    • TLS: Let's Encrypt, SSL Labs, DNS CAA, HSTS deployment +
    • Web: XSS prevention, CSRF prevention, CSP, input validation, SQL injection prevention
    -
+ +
-
-
-

Education

-
-
-
-

Hazen High School

- - - to - -
-
    -
  • Recieved OSHA 10 certification. -
  • Member of marching, symphonic, and jazz bands; recieved John Philip Sousa award in 2019. -
-
-
-
- - - +
+
+

Education

+
+
+
+

Hazen High School

+ + + to + +
+
    +
  • Recieved OSHA 10 certification. +
  • Member of marching, symphonic, and jazz bands; recieved John Philip Sousa award in 2019. +
+
+
diff --git a/robots.txt b/robots.txt index eb05362..761ca2c 100644 --- a/robots.txt +++ b/robots.txt @@ -1,2 +1,4 @@ User-agent: * Disallow: +Host: jamestmartin.me +Sitemap: https://jamestmartin.me/sitemap.xml