From 3a97e0aff60d58c883ba097eca89ebb531ff34c0 Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:36:35 +0200 Subject: [PATCH] Videos, Lessons, and styling. --- .../site/lessons/LessonsBanner.groovy | 17 +++ .../jessebrault/site/util/OpenGraph.groovy | 2 +- .../site/videos/VideosBanner.groovy | 17 +++ .../site/lessons/LessonsBanner.txt | 11 ++ .../jessebrault/site/videos/VideosBanner.txt | 14 ++ .../site/lessons/LessonsPage.groovy | 37 +++++ .../jessebrault/site/videos/VideosPage.groovy | 37 +++++ .../site/lessons/LessonsPageTemplate.wvc | 22 +++ .../site/videos/VideosPageTemplate.wvc | 22 +++ ssg/default.groovy | 2 +- static/main.css | 142 ++++++++++++------ static/main.js | 2 +- texts/Lessons.md | 11 ++ texts/Videos.md | 11 ++ 14 files changed, 296 insertions(+), 51 deletions(-) create mode 100644 components/groovy/com/jessebrault/site/lessons/LessonsBanner.groovy create mode 100644 components/groovy/com/jessebrault/site/videos/VideosBanner.groovy create mode 100644 components/resources/com/jessebrault/site/lessons/LessonsBanner.txt create mode 100644 components/resources/com/jessebrault/site/videos/VideosBanner.txt create mode 100644 pages/groovy/com/jessebrault/site/lessons/LessonsPage.groovy create mode 100644 pages/groovy/com/jessebrault/site/videos/VideosPage.groovy create mode 100644 pages/resources/com/jessebrault/site/lessons/LessonsPageTemplate.wvc create mode 100644 pages/resources/com/jessebrault/site/videos/VideosPageTemplate.wvc create mode 100644 texts/Lessons.md create mode 100644 texts/Videos.md diff --git a/components/groovy/com/jessebrault/site/lessons/LessonsBanner.groovy b/components/groovy/com/jessebrault/site/lessons/LessonsBanner.groovy new file mode 100644 index 0000000..58ae9cc --- /dev/null +++ b/components/groovy/com/jessebrault/site/lessons/LessonsBanner.groovy @@ -0,0 +1,17 @@ +package com.jessebrault.site.lessons + +import com.jessebrault.ssg.view.SkipTemplate +import groowt.view.View +import groowt.view.component.web.lib.DelegatingWebViewComponent + +@SkipTemplate +class LessonsBanner extends DelegatingWebViewComponent { + + private static final String lessonsBannerText = LessonsBanner.getResource('LessonsBanner.txt').text + + @Override + protected View getDelegate() { + return { Writer w -> w << lessonsBannerText } + } + +} diff --git a/components/groovy/com/jessebrault/site/util/OpenGraph.groovy b/components/groovy/com/jessebrault/site/util/OpenGraph.groovy index 349a050..6fe3981 100644 --- a/components/groovy/com/jessebrault/site/util/OpenGraph.groovy +++ b/components/groovy/com/jessebrault/site/util/OpenGraph.groovy @@ -20,7 +20,7 @@ class OpenGraph extends BaseWebViewComponent { OpenGraph(@Named('baseUrl') String baseUrl, @Global('openGraphFallbackImage') String fallbackImage, Map attr) { this.baseUrl = baseUrl title = attr.title - type = attr.type + type = attr.type ?: 'website' image = attr.image ?: fallbackImage description = attr.description path = attr.path diff --git a/components/groovy/com/jessebrault/site/videos/VideosBanner.groovy b/components/groovy/com/jessebrault/site/videos/VideosBanner.groovy new file mode 100644 index 0000000..11be608 --- /dev/null +++ b/components/groovy/com/jessebrault/site/videos/VideosBanner.groovy @@ -0,0 +1,17 @@ +package com.jessebrault.site.videos + +import com.jessebrault.ssg.view.SkipTemplate +import groowt.view.View +import groowt.view.component.web.lib.DelegatingWebViewComponent + +@SkipTemplate +class VideosBanner extends DelegatingWebViewComponent { + + private static final String videosBannerText = VideosBanner.getResource('VideosBanner.txt').text + + @Override + protected View getDelegate() { + return { Writer w -> w << videosBannerText } + } + +} diff --git a/components/resources/com/jessebrault/site/lessons/LessonsBanner.txt b/components/resources/com/jessebrault/site/lessons/LessonsBanner.txt new file mode 100644 index 0000000..1526616 --- /dev/null +++ b/components/resources/com/jessebrault/site/lessons/LessonsBanner.txt @@ -0,0 +1,11 @@ +
diff --git a/components/resources/com/jessebrault/site/videos/VideosBanner.txt b/components/resources/com/jessebrault/site/videos/VideosBanner.txt new file mode 100644 index 0000000..9fea3ba --- /dev/null +++ b/components/resources/com/jessebrault/site/videos/VideosBanner.txt @@ -0,0 +1,14 @@ + diff --git a/pages/groovy/com/jessebrault/site/lessons/LessonsPage.groovy b/pages/groovy/com/jessebrault/site/lessons/LessonsPage.groovy new file mode 100644 index 0000000..444428f --- /dev/null +++ b/pages/groovy/com/jessebrault/site/lessons/LessonsPage.groovy @@ -0,0 +1,37 @@ +package com.jessebrault.site.lessons + +import com.jessebrault.site.util.TitleMaker +import com.jessebrault.ssg.di.InjectText +import com.jessebrault.ssg.di.InjectTexts +import com.jessebrault.ssg.di.SelfPage +import com.jessebrault.ssg.page.Page +import com.jessebrault.ssg.page.PageSpec +import com.jessebrault.ssg.text.Text +import com.jessebrault.ssg.view.WvcPageView +import jakarta.inject.Inject + +@PageSpec(name = 'Lessons', path = '/lessons') +class LessonsPage extends WvcPageView { + + static final String description = 'Information about lessons offered by Jesse Brault.' + + final Page selfPage + private final TitleMaker titleMaker + private final Text lessonsText + + @Inject + LessonsPage(@SelfPage Page selfPage, TitleMaker titleMaker, @InjectText('/Lessons.md') Text lessonsText) { + this.selfPage = selfPage + this.titleMaker = titleMaker + this.lessonsText = lessonsText + } + + String getPageTitle() { + titleMaker.makeTitle(selfPage.name) + } + + String renderLessons() { + this.lessonsText.render() + } + +} diff --git a/pages/groovy/com/jessebrault/site/videos/VideosPage.groovy b/pages/groovy/com/jessebrault/site/videos/VideosPage.groovy new file mode 100644 index 0000000..6abdc4d --- /dev/null +++ b/pages/groovy/com/jessebrault/site/videos/VideosPage.groovy @@ -0,0 +1,37 @@ +package com.jessebrault.site.videos + +import com.jessebrault.site.util.TitleMaker +import com.jessebrault.ssg.di.InjectText +import com.jessebrault.ssg.di.InjectTexts +import com.jessebrault.ssg.di.SelfPage +import com.jessebrault.ssg.page.Page +import com.jessebrault.ssg.page.PageSpec +import com.jessebrault.ssg.text.Text +import com.jessebrault.ssg.view.WvcPageView +import jakarta.inject.Inject + +@PageSpec(name = 'Videos', path = '/videos') +class VideosPage extends WvcPageView { + + static final String description = 'Conducting videos of Jesse Brault.' + + final Page selfPage + private final TitleMaker titleMaker + private final Text videosText + + @Inject + VideosPage(@SelfPage Page selfPage, TitleMaker titleMaker, @InjectText('/Videos.md') Text videosText) { + this.selfPage = selfPage + this.titleMaker = titleMaker + this.videosText = videosText + } + + String getPageTitle() { + titleMaker.makeTitle(selfPage.name) + } + + String renderVideos() { + videosText.render() + } + +} diff --git a/pages/resources/com/jessebrault/site/lessons/LessonsPageTemplate.wvc b/pages/resources/com/jessebrault/site/lessons/LessonsPageTemplate.wvc new file mode 100644 index 0000000..844e949 --- /dev/null +++ b/pages/resources/com/jessebrault/site/lessons/LessonsPageTemplate.wvc @@ -0,0 +1,22 @@ +--- +package com.jessebrault.site.lessons + +import com.jessebrault.site.StandardPage +import com.jessebrault.site.util.OpenGraph +--- +