diff --git a/src/lib/components/Title.svelte b/src/lib/components/Title.svelte
new file mode 100644
index 00000000..c712469a
--- /dev/null
+++ b/src/lib/components/Title.svelte
@@ -0,0 +1,7 @@
+
+
+
+ Amy J. Ko - {text}
+
diff --git a/src/routes/(app)/+page.svelte b/src/routes/(app)/+page.svelte
index b5fdb320..2490e2dc 100644
--- a/src/routes/(app)/+page.svelte
+++ b/src/routes/(app)/+page.svelte
@@ -6,8 +6,11 @@
import Block from '$lib/components/Block.svelte';
import getPersonImagePath from '$lib/components/getPersonImage';
import Emoji from '$lib/components/Emoji.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
I study our individual and collective struggle to understand computing and
harness it for play, power, equity, and justice.
diff --git a/src/routes/(app)/bio/+page.svelte b/src/routes/(app)/bio/+page.svelte
index 6c96a47f..360b81fd 100644
--- a/src/routes/(app)/bio/+page.svelte
+++ b/src/routes/(app)/bio/+page.svelte
@@ -4,6 +4,7 @@
import Link from '$lib/components/Link.svelte';
import { profile } from '$lib/models/stores';
+ import Title from '$lib/components/Title.svelte';
$: pubCount =
Math.round(
@@ -24,6 +25,8 @@
).length;
+
+
Professional and personal takes on my professorly life.
Tiny Bio
diff --git a/src/routes/(app)/cer/+page.svelte b/src/routes/(app)/cer/+page.svelte
index 4db5ab5b..83c25ab4 100644
--- a/src/routes/(app)/cer/+page.svelte
+++ b/src/routes/(app)/cer/+page.svelte
@@ -4,8 +4,11 @@
import advisors from '$lib/models/advisors';
import SectionList from '$lib/components/SectionList.svelte';
import Table from '../../../lib/components/Table.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
This is my computing education research FAQ.
diff --git a/src/routes/(app)/classes/+page.svelte b/src/routes/(app)/classes/+page.svelte
index 4167d507..7ef7aaac 100644
--- a/src/routes/(app)/classes/+page.svelte
+++ b/src/routes/(app)/classes/+page.svelte
@@ -3,6 +3,7 @@
import External from '$lib/components/External.svelte';
import { profile } from '$lib/models/stores';
import Image from '$lib/components/Thumbnail.svelte';
+ import Title from '$lib/components/Title.svelte';
const offerings = $profile
.getClasses(
@@ -30,6 +31,8 @@
});
+
+
These are classes I teach.
{#each offerings as offering}
diff --git a/src/routes/(app)/commitments/+page.svelte b/src/routes/(app)/commitments/+page.svelte
index 088b6460..b3175797 100644
--- a/src/routes/(app)/commitments/+page.svelte
+++ b/src/routes/(app)/commitments/+page.svelte
@@ -5,6 +5,7 @@
import Bar from './Bar.svelte';
import DateRange from './DateRange.svelte';
import months from './months';
+ import Title from '$lib/components/Title.svelte';
let commits = $profile.getCommits();
let weeks = $profile.getWeeklyCommits();
@@ -73,6 +74,8 @@
);
+
+
This is my commitment calendar.
diff --git a/src/routes/(app)/communities/+page.svelte b/src/routes/(app)/communities/+page.svelte
index 3507ae20..bb0a90a0 100644
--- a/src/routes/(app)/communities/+page.svelte
+++ b/src/routes/(app)/communities/+page.svelte
@@ -1,8 +1,11 @@
+
+
These are communities I work with to do research, advocate, and have impact.
diff --git a/src/routes/(app)/contact/+page.svelte b/src/routes/(app)/contact/+page.svelte
index 04c17522..74f89a68 100644
--- a/src/routes/(app)/contact/+page.svelte
+++ b/src/routes/(app)/contact/+page.svelte
@@ -2,8 +2,11 @@
import Block from '$lib/components/Block.svelte';
import External from '$lib/components/External.svelte';
import Image from '$lib/components/Thumbnail.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
There are many ways to reach me:
diff --git a/src/routes/(app)/essays/+page.svelte b/src/routes/(app)/essays/+page.svelte
index d26581bc..3acfba33 100644
--- a/src/routes/(app)/essays/+page.svelte
+++ b/src/routes/(app)/essays/+page.svelte
@@ -5,6 +5,7 @@
import { profile } from '$lib/models/stores';
import Image from '$lib/components/Thumbnail.svelte';
import type { PostTagType } from '../../../lib/models/Post';
+ import Title from '$lib/components/Title.svelte';
let filter: Record = {};
@@ -13,6 +14,8 @@
}
+
+
I blog on my lab's Medium
publication,
+
+
These are questions I'm frequently asked.
diff --git a/src/routes/(app)/funding/+page.svelte b/src/routes/(app)/funding/+page.svelte
index 12827166..602d8433 100644
--- a/src/routes/(app)/funding/+page.svelte
+++ b/src/routes/(app)/funding/+page.svelte
@@ -5,8 +5,11 @@
import { parseDate } from '$lib/models/Profile';
import Image from '$lib/components/Thumbnail.svelte';
import Link from '$lib/components/Link.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
My students and I receive funding from many sources.
diff --git a/src/routes/(app)/impact/+page.svelte b/src/routes/(app)/impact/+page.svelte
index 671e9281..365e49bb 100644
--- a/src/routes/(app)/impact/+page.svelte
+++ b/src/routes/(app)/impact/+page.svelte
@@ -3,8 +3,11 @@
import External from '$lib/components/External.svelte';
import { profile } from '$lib/models/stores';
import Image from '$lib/components/Thumbnail.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
I actively share my research and expertise with the world.
{#each $profile.getPopulations() as population}
diff --git a/src/routes/(app)/lab/+page.svelte b/src/routes/(app)/lab/+page.svelte
index 9f7b51ab..06c45a48 100644
--- a/src/routes/(app)/lab/+page.svelte
+++ b/src/routes/(app)/lab/+page.svelte
@@ -5,6 +5,7 @@
import External from '$lib/components/External.svelte';
import { onMount } from 'svelte';
import { scrollToHash } from '$lib/models/utilities';
+ import Title from '$lib/components/Title.svelte';
onMount(() => {
scrollToHash();
@@ -18,6 +19,8 @@
}
+
+
I direct the Code & Cognition Lab.
diff --git a/src/routes/(app)/lablets/+page.svelte b/src/routes/(app)/lablets/+page.svelte
index 163a74b8..e82e300d 100644
--- a/src/routes/(app)/lablets/+page.svelte
+++ b/src/routes/(app)/lablets/+page.svelte
@@ -3,6 +3,7 @@
import Linkable from '$lib/components/Linkable.svelte';
import Alert from '$lib/components/Alert.svelte';
import Link from '$lib/components/Link.svelte';
+ import Title from '$lib/components/Title.svelte';
@@ -18,6 +19,8 @@
>.
+
+
Are you an undergraduate or masters student at UW that wants to join
diff --git a/src/routes/(app)/publications/+page.svelte b/src/routes/(app)/publications/+page.svelte
index 67cb0dae..e92108e1 100644
--- a/src/routes/(app)/publications/+page.svelte
+++ b/src/routes/(app)/publications/+page.svelte
@@ -8,6 +8,7 @@
import { profile } from '$lib/models/stores';
import { scrollToHash } from '$lib/models/utilities';
import Alert from '../../../lib/components/Alert.svelte';
+ import Title from '$lib/components/Title.svelte';
let selection: Record = {};
@@ -52,6 +53,8 @@
);
+
+
These are my academic publications.
diff --git a/src/routes/(app)/talks/+page.svelte b/src/routes/(app)/talks/+page.svelte
index 6f97d5fe..6284e417 100644
--- a/src/routes/(app)/talks/+page.svelte
+++ b/src/routes/(app)/talks/+page.svelte
@@ -5,6 +5,7 @@
import { parseDate } from '$lib/models/Profile';
import Image from '$lib/components/Thumbnail.svelte';
import Link from '$lib/components/Link.svelte';
+ import Title from '$lib/components/Title.svelte';
const months = [
'Jan',
@@ -22,6 +23,8 @@
];
+
+
These are my upcoming and past keynotes and invited talks.
{#each $profile.getTalks(undefined, (talk) => -parseDate(talk.date).getTime()) as talk}
diff --git a/src/routes/(app)/travel/+page.svelte b/src/routes/(app)/travel/+page.svelte
index 46797bd0..2cdaa60f 100644
--- a/src/routes/(app)/travel/+page.svelte
+++ b/src/routes/(app)/travel/+page.svelte
@@ -2,8 +2,11 @@
import Trip from '$lib/models/Trip.svelte';
import { profile } from '$lib/models/stores';
import { parseDate } from '$lib/models/Profile';
+ import Title from '$lib/components/Title.svelte';
+
+
Below are upcoming and past trips.
I frequently travel to share my research, ideas, and experiences.
diff --git a/src/routes/(app)/wordplaypen/+page.svelte b/src/routes/(app)/wordplaypen/+page.svelte
index c009ccad..37f67a93 100644
--- a/src/routes/(app)/wordplaypen/+page.svelte
+++ b/src/routes/(app)/wordplaypen/+page.svelte
@@ -4,8 +4,11 @@
import Alert from '$lib/components/Alert.svelte';
import Link from '../../../lib/components/Link.svelte';
import Emoji from '$lib/components/Emoji.svelte';
+ import Title from '$lib/components/Title.svelte';
+
+
Are you a University of Washington undergraduate interested in making
programming languages more playful, global, and accessible?
diff --git a/src/routes/(cv)/cv/+page.svelte b/src/routes/(cv)/cv/+page.svelte
index 48f4e366..d1ddb31d 100644
--- a/src/routes/(cv)/cv/+page.svelte
+++ b/src/routes/(cv)/cv/+page.svelte
@@ -7,6 +7,7 @@
import Image from '$lib/components/Thumbnail.svelte';
import Wrap from './Wrap.svelte';
import Table from '$lib/components/Table.svelte';
+ import Title from '$lib/components/Title.svelte';
let refereed = $profile.getPublications(
(pub) =>
@@ -18,6 +19,8 @@
+
+
Amy J. Ko, Ph.D.
Professor
The Information School