diff --git a/content/.gitkeep b/content/.gitkeep
deleted file mode 100644
index e69de29bb..000000000
diff --git a/content/01.far-reaches.md b/content/01.far-reaches.md
new file mode 100644
index 000000000..b1f07e9d2
--- /dev/null
+++ b/content/01.far-reaches.md
@@ -0,0 +1,3 @@
+---
+title: The Far Reaches
+---
diff --git a/content/Graphics/01.god-rays.md b/content/Graphics/01.god-rays.md
new file mode 100644
index 000000000..bd7a2a25d
--- /dev/null
+++ b/content/Graphics/01.god-rays.md
@@ -0,0 +1,6 @@
+---
+draft: false
+title: Screen Space God Rays
+tags:
+ - graphics
+---
diff --git a/content/index.md b/content/index.md
new file mode 100644
index 000000000..613968a67
--- /dev/null
+++ b/content/index.md
@@ -0,0 +1,17 @@
+---
+title: Welcome to Shaderlog!
+---
+A long time ago in a year known to many by 2003, I played my first "real" video game: **Pokémon Sapphire**. After encountering it in a Walmart in the great state of Maine, I quickly became enamored with the vaguely whale-shaped creature on the box art for the game. And so I began my scheming to acquire the game for myself.
+
+In about ~0.03 seconds I had formulated my plan. It was simple. Brilliant even. All I need do was ask my grandmother who was with me at that fated Walmart for it. The trick? My parents weren't with us to say no.
+
+And so began my love of video games in earnest. I played many Gameboy Advance games over the next couple of years, eventually migrating to PC and console gaming but always had a soft spot for games with pixel art and turn-based strategy like **Pokémon**, early **Fire Emblem** and of course **Final Fantasy**.
+
+Fast-forward a couple decades and now I am a full-time software engineer with a degree and background that while not all that uncommon these days, puts me in the perfect position to be able to learn how to develop those very same turn-based games I loved growing up.
+
+So come join me in here in this blog where I will be attempting to document my progress as an amateur game developer as I work on my new open-world tactics RPG game **The Far Reaches**. I will be splitting these into two major categories:
+- **Graphics Blog** A series of posts designed to introduce the high-level concepts and problems I encounter during development as well as my designs and solutions for solving them. I will attempt to explain these in layman's terms but a cursory understanding of some topics may be required.
+- **Dev Log** - A series of more casual posts that detail the progress and design decisions I have made for my game. These will likely be more of a "stream of consciousness"-type post that go over more game-specific stuff.
+
+## Dev Log
+## Graphics Blog
diff --git a/package-lock.json b/package-lock.json
index f180b7f8f..2db938b4a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1360,11 +1360,11 @@
}
},
"node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
"dependencies": {
- "fill-range": "^7.0.1"
+ "fill-range": "^7.1.1"
},
"engines": {
"node": ">=8"
@@ -2351,9 +2351,9 @@
}
},
"node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -3198,9 +3198,9 @@
}
},
"node_modules/katex": {
- "version": "0.16.8",
- "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.8.tgz",
- "integrity": "sha512-ftuDnJbcbOckGY11OO+zg3OofESlbR5DRl2cmN8HeWeeFIV7wTXvAOx8kEjZjobhA+9wh2fbKeO6cdcA9Mnovg==",
+ "version": "0.16.10",
+ "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz",
+ "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==",
"funding": [
"https://opencollective.com/katex",
"https://github.com/sponsors/katex"
diff --git a/quartz.config.ts b/quartz.config.ts
index fa08723e9..5a8fbeff5 100644
--- a/quartz.config.ts
+++ b/quartz.config.ts
@@ -8,12 +8,10 @@ import * as Plugin from "./quartz/plugins"
*/
const config: QuartzConfig = {
configuration: {
- pageTitle: "🪴 Quartz 4.0",
+ pageTitle: "Blog",
enableSPA: true,
enablePopovers: true,
- analytics: {
- provider: "plausible",
- },
+ analytics: null,
locale: "en-US",
baseUrl: "quartz.jzhao.xyz",
ignorePatterns: ["private", "templates", ".obsidian"],
diff --git a/quartz.layout.ts b/quartz.layout.ts
index b5a1639eb..02301d8f9 100644
--- a/quartz.layout.ts
+++ b/quartz.layout.ts
@@ -20,6 +20,7 @@ export const defaultContentPageLayout: PageLayout = {
Component.ArticleTitle(),
Component.ContentMeta(),
Component.TagList(),
+ Component.Comments(),
],
left: [
Component.PageTitle(),
diff --git a/quartz/components/Comments.tsx b/quartz/components/Comments.tsx
new file mode 100644
index 000000000..3fca0c51c
--- /dev/null
+++ b/quartz/components/Comments.tsx
@@ -0,0 +1,30 @@
+// @ts-ignore: typescript doesn't know about our inline bundling system
+// so we need to silence the error
+import script from "./scripts/comments.inline"
+import { QuartzComponentConstructor } from "./types"
+
+export default (() => {
+ function Footer() {
+ return (
+
+ )
+ }
+
+ Footer.beforeDOMLoaded = script
+
+ return Footer
+}) satisfies QuartzComponentConstructor
diff --git a/quartz/components/Footer.tsx b/quartz/components/Footer.tsx
index 076c37874..f1cd160b3 100644
--- a/quartz/components/Footer.tsx
+++ b/quartz/components/Footer.tsx
@@ -13,6 +13,7 @@ export default ((opts?: Options) => {
const links = opts?.links ?? []
return (