diff --git a/crates/service/service-webpage/src/routes/handouts.rs b/crates/service/service-webpage/src/routes/handouts.rs new file mode 100644 index 0000000..840b949 --- /dev/null +++ b/crates/service/service-webpage/src/routes/handouts.rs @@ -0,0 +1,84 @@ +use assetserver::Asset; +use maud::{Markup, html}; + +use crate::{ + components::{ + base::{BasePage, PageMetadata}, + md::Markdown, + misc::Backlinks, + }, + routes::assets::Image_Icon, +}; + +pub async fn handouts() -> Markup { + let meta = PageMetadata { + title: "Mark's Handouts".into(), + author: Some("Mark".into()), + description: None, + image: Some(Image_Icon::URL.into()), + }; + + html! { + (BasePage( + meta, + html!( + (Backlinks(&[("/", "home")], "handouts")) + + (Markdown(MD_A)) + ) + )) + } +} + +const MD_A: &str = r#"# Mark's Handouts + +[ORMC]: https://circles.math.ucla.edu/circles + +This page lists all the handouts I've written for my classes at the [ORMC], +a mathematics program for advanced students. We avoid "textbook" +topics, and instead discuss interesting material that isn't seen in school. + +{style(color_var:grey) I often tell my class that Math Circle makes no effort to teach math. +Math Circle teaches you to *think.*"} + +

+ +{style(color_var:pink) For my students: } \ +Don't look at solutions we haven't discussed, +and don't start any handouts before class. That spoils all the fun! + +{style(color_var:green) For everyone else:} \ +If you're using any of these, please let me know---especially \ +if you find errors, mistakes, or a poorly designed section. \ +Such things must be fixed! {{ email_beta() }} + +

+ +## Overview & Context + +Our classes are two hours long, with a ten-minute break in between. The lessons below +are written with that in mind.\ +At the end of the ideal class, an average student should +be nearly (but not _fully_) done with that week's handout. +If the class finishes early, the lesson is either too short or too easy. + +

+
+

+ +## Warm-Ups + +Students never show up on time. Some come early, some come late. Warm-ups +are my solution to this problem: we hand these out as students walk in, +giving them something to do until we can start the lesson. + +{{ handouts(group = "Warm-Ups") }} + +## Advanced + +The highest level of the ORMC, and the group I spend most of my time with. +Students in ORMC Advanced are in high school, which means +they're ~14-18 years old. + +{{ handouts(group = "Advanced") }} +"#; diff --git a/crates/service/service-webpage/src/routes/mod.rs b/crates/service/service-webpage/src/routes/mod.rs index a0d3be6..0250021 100644 --- a/crates/service/service-webpage/src/routes/mod.rs +++ b/crates/service/service-webpage/src/routes/mod.rs @@ -5,6 +5,7 @@ use utoipa::OpenApi; pub mod assets; mod betalupi; +mod handouts; mod index; mod links; @@ -20,5 +21,6 @@ pub(super) fn router() -> Router<()> { .route("/", get(index::index)) .route("/whats-a-betalupi", get(betalupi::betalupi)) .route("/links", get(links::links)) + .route("/handouts", get(handouts::handouts)) .nest(asset_prefix, asset_router) }