+ {{ prettyDate }} · {{ latest.readingTime.text }} +
+ + ++ {{ latest.description }} … +
+{{ title }}
+ | base64 -d
+echo | base64 -d
+echo | base64 -d
+echo | base64 -d
+echo | base64 -d
+```
+There is one secret solution implied in the instructions:
+
+> If you are so inclined, you may find that the base case is not the base it appears to be, and that there might be something deeper...
+
+A "base case" is a term for when recursion ends and things start returning up the stack. The hint here implies that the base64 command you're given is *not* the end, and perhaps you can run it a few more times to get a different result.
+
+To be precise, running the command five times on each code you get will give you:
+
+```
+you found a secret!
+```
+
+Submitting this to the judge will grant you a score of 3/3 and access to the secret prize: https://prize.bayview.club/secret .
diff --git a/content/blog/test.md b/content/blog/test.md
index 74ae5eb..7ea58b4 100644
--- a/content/blog/test.md
+++ b/content/blog/test.md
@@ -1,3 +1,7 @@
+---
+date: 2022-03-01
+---
+
HELLO!
**markdown test**
\ No newline at end of file
diff --git a/content/stories/test.md b/content/stories/test.md
new file mode 100644
index 0000000..7abf662
--- /dev/null
+++ b/content/stories/test.md
@@ -0,0 +1 @@
+oy
\ No newline at end of file
diff --git a/layouts/default.vue b/layouts/default.vue
index 8bb4117..51e4788 100644
--- a/layouts/default.vue
+++ b/layouts/default.vue
@@ -73,4 +73,10 @@ footer {
html.dark footer {
--footer-drop-color: black;
}
+
+@media screen and (max-width: 600px) {
+ main {
+ width: 90%;
+ }
+}
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 2c986d0..93874e3 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -1,6 +1,5 @@
import { defineNuxtConfig } from "nuxt";
import svgLoader from "vite-svg-loader";
-
// https://v3.nuxtjs.org/api/configuration/nuxt.config
export default defineNuxtConfig({
modules: [
@@ -38,5 +37,11 @@ export default defineNuxtConfig({
highlight: {
theme: "dracula",
},
+ markdown: {
+ remarkPlugins: ["remark-reading-time"],
+ },
+ },
+ experimental: {
+ reactivityTransform: true,
},
});
diff --git a/package.json b/package.json
index 771f836..3d3aefb 100644
--- a/package.json
+++ b/package.json
@@ -13,8 +13,12 @@
"@nuxtjs/tailwindcss": "^5.3.0",
"@tailwindcss/typography": "^0.5.2",
"nuxt": "npm:nuxt3@latest",
+ "remark-reading-time": "^2.0.1",
"sitemap": "^7.1.1",
"typescript": "^4.7.4",
"vite-svg-loader": "^3.4.0"
+ },
+ "dependencies": {
+ "dayjs": "^1.11.4"
}
}
diff --git a/pages/[...slug].vue b/pages/[...slug].vue
index 4e7f7f0..d7dd2e7 100644
--- a/pages/[...slug].vue
+++ b/pages/[...slug].vue
@@ -18,4 +18,8 @@ article {
height: 100%;
padding-top: 2rem;
}
+
+* {
+ transition: color 0.2s ease;
+}
diff --git a/pages/index.vue b/pages/index.vue
index e466478..a5cf599 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -10,14 +10,11 @@ useTitle("Home");
Welcome!
What are you here to see?
- Latest blog post
- Latest story
- Latest commit w/details
+
+
+
-
-
-
diff --git a/shared/types.d.ts b/shared/types.d.ts
new file mode 100644
index 0000000..fd6c151
--- /dev/null
+++ b/shared/types.d.ts
@@ -0,0 +1,23 @@
+import type { ParsedContent } from "@nuxt/content/dist/runtime/types";
+
+interface ReadingTime {
+ text: string;
+ minutes: number;
+ time: number;
+ words: number;
+}
+
+interface BlogParsedContent extends ParsedContent {
+ date: Date;
+ title: string;
+ tags: string[];
+ description?: Record;
+ readingTime: ReadingTime;
+}
+
+interface StoryParsedContent extends ParsedContent {
+ date: Date;
+ title: string;
+ tags: string[];
+ readingTime: ReadingTime;
+}
diff --git a/tsconfig.json b/tsconfig.json
index a7bfa18..bda0431 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,4 +1,5 @@
{
// https://v3.nuxtjs.org/concepts/typescript
- "extends": "./.nuxt/tsconfig.json"
+ "extends": "./.nuxt/tsconfig.json",
+ "compilerOptions": {"esModuleInterop": true}
}
diff --git a/yarn.lock b/yarn.lock
index dd222f9..c8de85a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1835,6 +1835,11 @@ data-uri-to-buffer@^4.0.0:
resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b"
integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==
+dayjs@^1.11.4:
+ version "1.11.4"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.4.tgz#3b3c10ca378140d8917e06ebc13a4922af4f433e"
+ integrity sha512-Zj/lPM5hOvQ1Bf7uAvewDaUcsJoI6JmNqmHhHl3nyumwe0XHwt8sWdOVAPACJzCebL8gQCi+K49w7iKWnGwX9g==
+
debug@2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -2247,6 +2252,18 @@ escape-string-regexp@^5.0.0:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8"
integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==
+estree-util-is-identifier-name@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz#cf07867f42705892718d9d89eb2d85eaa8f0fcb5"
+ integrity sha512-rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==
+
+estree-util-value-to-estree@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49"
+ integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw==
+ dependencies:
+ is-plain-obj "^3.0.0"
+
estree-walker@2.0.2, estree-walker@^2.0.1, estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
@@ -3042,6 +3059,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-plain-obj@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7"
+ integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==
+
is-plain-obj@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0"
@@ -4973,6 +4995,11 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
+reading-time@^1.3.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb"
+ integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==
+
redis-errors@^1.0.0, redis-errors@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad"
@@ -5086,6 +5113,16 @@ remark-parse@^10.0.1:
mdast-util-from-markdown "^1.0.0"
unified "^10.0.0"
+remark-reading-time@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.1.tgz#fe8bb8e420db7678dc749385167adb4fc99318f7"
+ integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw==
+ dependencies:
+ estree-util-is-identifier-name "^2.0.0"
+ estree-util-value-to-estree "^1.3.0"
+ reading-time "^1.3.0"
+ unist-util-visit "^3.1.0"
+
remark-rehype@^10.1.0:
version "10.1.0"
resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279"
@@ -5921,6 +5958,14 @@ unist-util-stringify-position@^3.0.0:
dependencies:
"@types/unist" "^2.0.0"
+unist-util-visit-parents@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2"
+ integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==
+ dependencies:
+ "@types/unist" "^2.0.0"
+ unist-util-is "^5.0.0"
+
unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz#44bbc5d25f2411e7dfc5cecff12de43296aa8521"
@@ -5929,6 +5974,15 @@ unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.0:
"@types/unist" "^2.0.0"
unist-util-is "^5.0.0"
+unist-util-visit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b"
+ integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==
+ dependencies:
+ "@types/unist" "^2.0.0"
+ unist-util-is "^5.0.0"
+ unist-util-visit-parents "^4.0.0"
+
unist-util-visit@^4.0.0, unist-util-visit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.0.tgz#f41e407a9e94da31594e6b1c9811c51ab0b3d8f5"