diff --git a/Gemfile b/Gemfile
index e82fe9b..0c81987 100644
--- a/Gemfile
+++ b/Gemfile
@@ -8,4 +8,6 @@ gem "lagrange", "~> 4.0"
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
+ gem "jekyll-seo-tag", "~> 2.8"
+ gem "jekyll-sitemap", "~> 1.4"
end
diff --git a/Gemfile.lock b/Gemfile.lock
index 15765f8..54e102c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -81,6 +81,8 @@ PLATFORMS
DEPENDENCIES
jekyll (~> 4.3.2)
jekyll-feed (~> 0.12)
+ jekyll-seo-tag (~> 2.8)
+ jekyll-sitemap (~> 1.4)
lagrange (~> 4.0)
BUNDLED WITH
diff --git a/_config.yml b/_config.yml
index 694fd77..231a8bd 100644
--- a/_config.yml
+++ b/_config.yml
@@ -20,12 +20,22 @@
title: Joshua Potter
description: My portfolio
+author: Joshua Potter
github_username: jrpotter
# Build settings
theme: lagrange
plugins:
- jekyll-feed
+ - jekyll-seo-tag
+ - jekyll-sitemap
+
+markdown: kramdown
+highlighter: route
+permalink: /:title
+
+hide_post_share: true
+hide_related_posts: true
# Exclude from processing.
# The following items will not be processed, by default.
diff --git a/_data/settings.yml b/_data/settings.yml
new file mode 100644
index 0000000..9fb906e
--- /dev/null
+++ b/_data/settings.yml
@@ -0,0 +1,18 @@
+menu:
+ - name: "Home"
+ - name: "Projects"
+ url: "projects.html"
+ - name: "Archive"
+ url: "archive.html"
+
+social:
+ - icon: "github"
+ link: "https://github.com/jrpotter"
+ - icon: "rss-square"
+ link: "https://blog.jrpotter.com"
+ - icon: "book"
+ link: "https://bookshelf.jrpotter.com"
+ - icon: "linkedin"
+ link: "https://www.linkedin.com/in/jrpotter2112/"
+ - icon: "hdd-o"
+ link: "https://www.zotero.org/jrpotter2112/library"
diff --git a/_includes/footer.html b/_includes/footer.html
new file mode 100644
index 0000000..d3252b9
--- /dev/null
+++ b/_includes/footer.html
@@ -0,0 +1,4 @@
+
diff --git a/_layouts/archive.html b/_layouts/archive.html
new file mode 100644
index 0000000..d0a0b42
--- /dev/null
+++ b/_layouts/archive.html
@@ -0,0 +1,28 @@
+---
+layout: default
+---
+
+
+ {{ page.title }}
+
+
+
+ {% for post in site.posts %}
+ {% unless post.next %}
+ {{ post.date | date: '%Y' }}
+ {% else %}
+ {% capture year %}{{ post.date | date: '%Y' }}{% endcapture %}
+ {% capture nyear %}{{ post.next.date | date: '%Y' }}{% endcapture %}
+ {% if year != nyear %}
+ {{ post.date | date: '%Y' }}
+ {% endif %}
+ {% endunless %}
+
+ {{ post.title }}
+
+ {{ post.content | strip_html }}
+
+ {{ post.date | date: "%B %-d" }}
+
+ {% endfor %}
+
diff --git a/_layouts/home.html b/_layouts/home.html
new file mode 100644
index 0000000..cd7bd8e
--- /dev/null
+++ b/_layouts/home.html
@@ -0,0 +1,30 @@
+---
+layout: default
+---
+
+
+ The following websites are served from NixOS
+ machines hosted on Digital Ocean .
+ Configuration files for each of my machines can be found here .
+ If interested in starting a similar hosting solution, consider getting a $200
+ credit using my referral link .
+
+
+{% for post in site.posts %}
+{% if post.categories contains "home" %}
+
+
+ {% if post.image %}
+
+
+
+ {% endif %}
+
+ {{ post.content }}
+ {{ post.href }} - {{ post.date | date_to_string }}
+
+
+{% endif %}
+{% endfor %}
diff --git a/_layouts/post.html b/_layouts/post.html
new file mode 100644
index 0000000..c98807b
--- /dev/null
+++ b/_layouts/post.html
@@ -0,0 +1,29 @@
+---
+layout: default
+---
+
+
+{% if page.image %}
+
+
+
+
+
+{% endif %}
+
+ {{ content }}
+
+{% if site.hide_post_date != true %}
+ {% include post-date.html %}
+{% endif %}
+{% if site.hide_post_share != true %}
+ {% include social-sharing.html %}
+{% endif %}
+{% if site.hide_related_posts != true %}
+ {% include related-posts.html %}
+{% endif %}
+{% if site.data.settings.disqus.comments %}
+ {% include disqus.html %}
+{% endif %}
diff --git a/_layouts/projects.html b/_layouts/projects.html
new file mode 100644
index 0000000..1776382
--- /dev/null
+++ b/_layouts/projects.html
@@ -0,0 +1,22 @@
+---
+layout: default
+---
+
+{% for post in site.posts %}
+{% if post.categories contains "project" %}
+
+
+ {% if post.image %}
+
+
+
+ {% endif %}
+
+ {{ post.content }}
+ {{ post.href }} - {{ post.date | date_to_string }}
+
+
+{% endif %}
+{% endfor %}
diff --git a/_posts/2021-12-08-blog.md b/_posts/2021-12-08-blog.md
new file mode 100644
index 0000000..7e00c8a
--- /dev/null
+++ b/_posts/2021-12-08-blog.md
@@ -0,0 +1,13 @@
+---
+layout: post
+title: Blog
+categories: home
+tags: [ruby, jekyll, nix]
+href: "https://blog.jrpotter.com"
+image: jekyll.png
+---
+
+I occasionally write about (usually) technical concepts in my blog. Originally
+powered by Github Pages, I've since moved the [Jekyll](https://jekyllrb.com/){:target="_blank"}-based
+project to a self-hosting solution. Theming is provided by
+[Chirpy](https://github.com/cotes2020/jekyll-theme-chirpy){:target="_blank"}.
diff --git a/_posts/2021-12-28-homesync.html b/_posts/2021-12-28-homesync.html
new file mode 100644
index 0000000..271f167
--- /dev/null
+++ b/_posts/2021-12-28-homesync.html
@@ -0,0 +1,13 @@
+---
+layout: post
+title: Homesync
+categories: project
+tags: [rust, git, nix]
+href: "https://github.com/jrpotter/homesync"
+---
+
+An experimental Rust-based project for automatically syncing files scross your
+desktop to a git repository. Allows upstream and downstream syncing with a
+single command, without any need to copy files manually to and from a git
+repository. Separately, a daemon can be spawned that watches files for changes
+and pushes/pulls them as they happen.
diff --git a/_posts/2022-07-02-anki-synonyms.md b/_posts/2022-07-02-anki-synonyms.md
new file mode 100644
index 0000000..e5aeb8c
--- /dev/null
+++ b/_posts/2022-07-02-anki-synonyms.md
@@ -0,0 +1,10 @@
+---
+layout: post
+title: Anki Synonyms
+categories: project
+tags: [python, anki]
+href: "https://github.com/jrpotter/anki-synonyms"
+---
+
+An [Anki](https://apps.ankiweb.net/){:target="_blank"} plugin for specifying
+synonyms within flashcard question and answer prompts.
diff --git a/_posts/2023-02-05-bookshelf.md b/_posts/2023-02-05-bookshelf.md
new file mode 100644
index 0000000..8892292
--- /dev/null
+++ b/_posts/2023-02-05-bookshelf.md
@@ -0,0 +1,13 @@
+---
+layout: post
+title: Bookshelf
+categories: home
+tags: [lean, latex, nix]
+href: "https://bookshelf.jrpotter.com"
+image: lean.svg
+---
+
+A collection of books I am actively studying. Usually mathematics or
+computer-science based, I aim to prove concepts as I encounter them using the
+[Lean](https://lean-lang.org/){:target="_blank"} interactive theorem prover. All
+proofs are also available in [LaTeX](https://www.latex-project.org/){:target="_blank"}.
diff --git a/_posts/2023-11-17-bootstrap.md b/_posts/2023-11-17-bootstrap.md
new file mode 100644
index 0000000..47ce3c6
--- /dev/null
+++ b/_posts/2023-11-17-bootstrap.md
@@ -0,0 +1,14 @@
+---
+layout: post
+title: Boostrap
+categories: project
+tags: [c, nix]
+href: "https://github.com/jrpotter/bootstrap"
+---
+
+A C-based CLI for initializing projects in a flexible but deterministic way.
+Originally motivated to serve as a better alternative to
+[Nix flake templates](https://github.com/NixOS/templates){:target="_blank"},
+`bootstrap` allows you to provide different parameters to custom initialization
+scripts akin to `npm init`, `django-admin startproject`, etc.
+
diff --git a/_posts/2023-11-26-boardwise.md b/_posts/2023-11-26-boardwise.md
new file mode 100644
index 0000000..c8aa905
--- /dev/null
+++ b/_posts/2023-11-26-boardwise.md
@@ -0,0 +1,16 @@
+---
+layout: post
+title: BoardWise
+categories: home
+tags: [elixir, react, nix]
+href: "https://boardwise.gg"
+image: boardwise.svg
+---
+
+A [Phoenix](https://www.phoenixframework.org/){:target="_blank"}- and
+[React](https://react.dev/){:target="_blank"}-based project that provides an
+interface for finding chess coaches. This serves as an alternative to those
+found on [Lichess](https://lichess.org/coach){:target="_blank"} and
+[Chess.com](https://www.chess.com/coaches){:target="_blank"}. Based on the
+[Tailwind Studio](https://tailwindui.com/templates/studio){:target="_blank"}
+theme.
diff --git a/_sass/_-sections-dir.scss b/_sass/_-sections-dir.scss
new file mode 100644
index 0000000..03311d6
--- /dev/null
+++ b/_sass/_-sections-dir.scss
@@ -0,0 +1,6 @@
+@import "base",
+ "code",
+ "default",
+ "home",
+ "post",
+ "social-icons"
diff --git a/_sass/_home.scss b/_sass/_home.scss
new file mode 100644
index 0000000..b2efa8a
--- /dev/null
+++ b/_sass/_home.scss
@@ -0,0 +1,12 @@
+.home-description, .posts-container {
+ padding-bottom: 25px;
+}
+
+.thumbnail-container {
+ text-align: center;
+
+ img {
+ width: auto;
+ height: 200px;
+ }
+}
diff --git a/_sass/_post.scss b/_sass/_post.scss
new file mode 100644
index 0000000..edce735
--- /dev/null
+++ b/_sass/_post.scss
@@ -0,0 +1,36 @@
+.page-image-container {
+ text-align: center;
+
+ img {
+ width: auto;
+ height: 200px;
+ }
+}
+
+.post-date {
+ display: block;
+ margin-top:3px;
+ margin-bottom: 1rem;
+ color: $light-gray-color;
+ font-family: $sans-serif-font-family;
+ font-size:0.8rem;
+}
+
+@media (max-width: $elements-responsive-width) {
+ .posts h1 {
+ font-size: 1.5rem;
+ }
+}
+
+.related {
+ padding-bottom: 2rem;
+}
+
+.related-posts {
+ padding-left: 0px;
+ list-style: none;
+}
+
+.related-posts a {
+ text-decoration: none;
+}
diff --git a/_sass/social-icons.scss b/_sass/social-icons.scss
new file mode 100644
index 0000000..a248d91
--- /dev/null
+++ b/_sass/social-icons.scss
@@ -0,0 +1,70 @@
+/*
+ Social media icons
+*/
+
+.social-icons a, .sharing-icons a {
+ padding-right: 10px;
+}
+
+@mixin social-media-icon($color, $transition){
+ -webkit-transition: $transition;
+ -o-transition: $transition;
+ -ms-transition: $transition;
+ -moz-transition: $transition;
+ transition: $transition;
+ &:hover{
+ color: $color;
+ }
+}
+
+.sharing-icons {
+ .fa-envelope {
+ padding: 5px;
+ @include social-media-icon($envelope-color, $icon-transition-time);
+ }
+
+ .fa-twitter {
+ padding: 5px;
+ @include social-media-icon($twitter-color, $icon-transition-time);
+ }
+
+ .fa-instagram {
+ padding: 5px;
+ @include social-media-icon($instagram-color, $icon-transition-time);
+ }
+
+ .fa-github {
+ padding: 5px;
+ @include social-media-icon($github-color, $icon-transition-time);
+ }
+
+ .fa-linkedin {
+ padding: 5px;
+ @include social-media-icon($linkedin-color, $icon-transition-time);
+ }
+
+ .fa-facebook {
+ padding: 5px;
+ @include social-media-icon($facebook-color, $icon-transition-time);
+ }
+
+ .fa-pinterest {
+ padding: 5px;
+ @include social-media-icon($pinterest-color, $icon-transition-time);
+ }
+
+ .fa-medium {
+ padding: 5px;
+ @include social-media-icon($medium-color, $icon-transition-time);
+ }
+
+ .fa-codepen {
+ padding: 5px;
+ @include social-media-icon($codepen-color, $icon-transition-time);
+ }
+
+ .fa-rss-square {
+ padding: 5px;
+ @include social-media-icon($rss-color, $icon-transition-time);
+ }
+}
diff --git a/about.markdown b/about.markdown
deleted file mode 100644
index 8b4e0b2..0000000
--- a/about.markdown
+++ /dev/null
@@ -1,18 +0,0 @@
----
-layout: page
-title: About
-permalink: /about/
----
-
-This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)
-
-You can find the source code for Minima at GitHub:
-[jekyll][jekyll-organization] /
-[minima](https://github.com/jekyll/minima)
-
-You can find the source code for Jekyll at GitHub:
-[jekyll][jekyll-organization] /
-[jekyll](https://github.com/jekyll/jekyll)
-
-
-[jekyll-organization]: https://github.com/jekyll
diff --git a/assets/img/boardwise.svg b/assets/img/boardwise.svg
new file mode 100644
index 0000000..e2fa1bc
--- /dev/null
+++ b/assets/img/boardwise.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/assets/img/jekyll.png b/assets/img/jekyll.png
new file mode 100644
index 0000000..57af994
Binary files /dev/null and b/assets/img/jekyll.png differ
diff --git a/assets/img/lean.svg b/assets/img/lean.svg
new file mode 100644
index 0000000..92e242c
--- /dev/null
+++ b/assets/img/lean.svg
@@ -0,0 +1,314 @@
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..32dfdd8
--- /dev/null
+++ b/index.html
@@ -0,0 +1,4 @@
+---
+layout: home
+title: Home
+---
diff --git a/index.markdown b/index.markdown
deleted file mode 100644
index 0671507..0000000
--- a/index.markdown
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Feel free to add content and custom Front Matter to this file.
-# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
-
-layout: home
----
diff --git a/menu/archive.md b/menu/archive.md
new file mode 100644
index 0000000..f7edbbd
--- /dev/null
+++ b/menu/archive.md
@@ -0,0 +1,6 @@
+---
+layout: archive
+title: Archive
+permalink: /archive
+---
+
diff --git a/menu/home.md b/menu/home.md
new file mode 100644
index 0000000..32dfdd8
--- /dev/null
+++ b/menu/home.md
@@ -0,0 +1,4 @@
+---
+layout: home
+title: Home
+---
diff --git a/menu/projects.md b/menu/projects.md
new file mode 100644
index 0000000..5461747
--- /dev/null
+++ b/menu/projects.md
@@ -0,0 +1,4 @@
+---
+layout: home
+title: Projects
+---
diff --git a/projects.html b/projects.html
new file mode 100644
index 0000000..bfa0f72
--- /dev/null
+++ b/projects.html
@@ -0,0 +1,4 @@
+---
+layout: projects
+title: Projects
+---