diff --git a/.vitepress/components/AnswerInput.vue b/.vitepress/components/AnswerInput.vue
new file mode 100644
index 0000000..815f83e
--- /dev/null
+++ b/.vitepress/components/AnswerInput.vue
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+
diff --git a/.vitepress/config.mjs b/.vitepress/config.mjs
index c6fcdb0..c5cbe19 100644
--- a/.vitepress/config.mjs
+++ b/.vitepress/config.mjs
@@ -90,6 +90,10 @@ export default defineConfig({
{
text: 'Glossary',
link: '/glossary'
+ },
+ {
+ text: 'Exercises',
+ link: '/exercises/'
}
],
@@ -98,7 +102,8 @@ export default defineConfig({
'/express/': sidebars.express,
'/html-css/': sidebars.htmlCss,
'/js/': sidebars.javascript,
- '/sql/': sidebars.sql
+ '/sql/': sidebars.sql,
+ '/exercises/': sidebars.exercises
},
socialLinks: [
diff --git a/.vitepress/sidebars/exercises.js b/.vitepress/sidebars/exercises.js
new file mode 100644
index 0000000..a23b2be
--- /dev/null
+++ b/.vitepress/sidebars/exercises.js
@@ -0,0 +1,8 @@
+const exerciseNum = i => String(i + 1).padStart(3, '0')
+
+export const exercises = new Array(3)
+ .fill(null)
+ .map((_, i) => ({
+ text: `Exercise ${i + 1}`,
+ link: `/exercises/${exerciseNum(i)}`
+ }))
diff --git a/.vitepress/sidebars/index.js b/.vitepress/sidebars/index.js
index a809499..cb4a11c 100644
--- a/.vitepress/sidebars/index.js
+++ b/.vitepress/sidebars/index.js
@@ -3,3 +3,4 @@ export { express } from './express.js'
export { htmlCss } from './html-css.js'
export { javascript } from './javascript.js'
export { sql } from './sql.js'
+export { exercises } from './exercises.js'
diff --git a/.vitepress/theme/index.js b/.vitepress/theme/index.js
index 6607803..f122c5b 100644
--- a/.vitepress/theme/index.js
+++ b/.vitepress/theme/index.js
@@ -5,6 +5,7 @@ import './style.css'
import Vimeo from '../components/Vimeo.vue'
import Exercise from '../components/Exercise.vue'
+import AnswerInput from '../components/AnswerInput.vue'
import CodeMirror from '../components/CodeMirror.vue'
/** @type {import('vitepress').Theme} */
@@ -19,5 +20,6 @@ export default {
app.component('Vimeo', Vimeo)
app.component('Exercise', Exercise)
app.component('CodeMirror', CodeMirror)
+ app.component('AnswerInput', AnswerInput)
}
}
diff --git a/src/exercises/001.md b/src/exercises/001.md
new file mode 100644
index 0000000..08f7b9e
--- /dev/null
+++ b/src/exercises/001.md
@@ -0,0 +1,12 @@
+---
+answer: 280408588055
+---
+
+# Exercise 1
+
+If `x = 402095` and `y = 697369`, use your code editor to find the value of `x`
+multiplied by `y`.
+
+Print your answer to the console, then copy and paste it below.
+
+
diff --git a/src/exercises/002.md b/src/exercises/002.md
new file mode 100644
index 0000000..63bb727
--- /dev/null
+++ b/src/exercises/002.md
@@ -0,0 +1,12 @@
+---
+answer: 670517
+---
+
+# Exercise 2
+
+If `a = 267560421612` and `b = 399036`, use your code editor to find the value
+of `a` divided by `b`.
+
+Print your answer to the console, then copy and paste it below.
+
+
diff --git a/src/exercises/003.md b/src/exercises/003.md
new file mode 100644
index 0000000..dfb9bb7
--- /dev/null
+++ b/src/exercises/003.md
@@ -0,0 +1,12 @@
+---
+answer: 370967703776
+---
+
+# Exercise 3
+
+Use your code editor to find the result when the number `206` is multipled by
+itself `5` times.
+
+Print your answer to the console, then copy and paste it below.
+
+
diff --git a/src/exercises/index.md b/src/exercises/index.md
new file mode 100644
index 0000000..428e596
--- /dev/null
+++ b/src/exercises/index.md
@@ -0,0 +1,3 @@
+# Exercises
+
+Welcome to the exercises!