From 5fe7fc923e7a6456ae40dd381be883c320c84edc Mon Sep 17 00:00:00 2001 From: JesseBrault0709 <62299747+JesseBrault0709@users.noreply.github.com> Date: Thu, 30 May 2024 11:51:08 +0200 Subject: [PATCH] Components and di properly working. --- build.gradle | 2 -- .../groovy/com/jessebrault/site/Head.groovy | 13 +++++++++++ .../com/jessebrault/site/StandardPage.groovy | 17 ++++++++++++++ .../com/jessebrault/site/HeadTemplate.wvc | 7 ++++++ .../jessebrault/site/StandardPageTemplate.wvc | 9 ++++++++ .../com/jessebrault/site/BiographyPage.groovy | 3 +-- .../jessebrault/site/CompositionsPage.groovy | 22 +++++++++++++++++++ .../com/jessebrault/site/BiographyPage.wvc | 14 ------------ .../site/BiographyPageTemplate.wvc | 8 +++++++ .../site/CompositionsPageTemplate.wvc | 6 +++++ .../jessebrault/site/util/TitleMaker.groovy | 12 +++++----- ssg/default.groovy | 6 ++--- 12 files changed, 93 insertions(+), 26 deletions(-) create mode 100644 components/groovy/com/jessebrault/site/Head.groovy create mode 100644 components/groovy/com/jessebrault/site/StandardPage.groovy create mode 100644 components/resources/com/jessebrault/site/HeadTemplate.wvc create mode 100644 components/resources/com/jessebrault/site/StandardPageTemplate.wvc create mode 100644 pages/groovy/com/jessebrault/site/CompositionsPage.groovy delete mode 100644 pages/resources/com/jessebrault/site/BiographyPage.wvc create mode 100644 pages/resources/com/jessebrault/site/BiographyPageTemplate.wvc create mode 100644 pages/resources/com/jessebrault/site/CompositionsPageTemplate.wvc diff --git a/build.gradle b/build.gradle index 9bfbf25..88d1411 100644 --- a/build.gradle +++ b/build.gradle @@ -12,7 +12,5 @@ repositories { dependencies { implementation 'org.apache.groovy:groovy:4.0.21' - ssgImplementation sourceSets.main.runtimeClasspath // TODO: put this in plugin - pagesImplementation sourceSets.main.runtimeClasspath } diff --git a/components/groovy/com/jessebrault/site/Head.groovy b/components/groovy/com/jessebrault/site/Head.groovy new file mode 100644 index 0000000..37c1b74 --- /dev/null +++ b/components/groovy/com/jessebrault/site/Head.groovy @@ -0,0 +1,13 @@ +package com.jessebrault.site + +import groowt.view.component.web.BaseWebViewComponent + +class Head extends BaseWebViewComponent { + + final String title + + Head(Map attr) { + title = attr.title + } + +} diff --git a/components/groovy/com/jessebrault/site/StandardPage.groovy b/components/groovy/com/jessebrault/site/StandardPage.groovy new file mode 100644 index 0000000..30dec7c --- /dev/null +++ b/components/groovy/com/jessebrault/site/StandardPage.groovy @@ -0,0 +1,17 @@ +package com.jessebrault.site + +import groowt.view.component.web.BaseWebViewComponent + +class StandardPage extends BaseWebViewComponent { + + final String title + + StandardPage(Map attr) { + this.title = attr.title + } + + List getPageChildren() { + this.children + } + +} diff --git a/components/resources/com/jessebrault/site/HeadTemplate.wvc b/components/resources/com/jessebrault/site/HeadTemplate.wvc new file mode 100644 index 0000000..fec9098 --- /dev/null +++ b/components/resources/com/jessebrault/site/HeadTemplate.wvc @@ -0,0 +1,7 @@ +--- +package com.jessebrault.site +--- + + + $title + diff --git a/components/resources/com/jessebrault/site/StandardPageTemplate.wvc b/components/resources/com/jessebrault/site/StandardPageTemplate.wvc new file mode 100644 index 0000000..07efbb2 --- /dev/null +++ b/components/resources/com/jessebrault/site/StandardPageTemplate.wvc @@ -0,0 +1,9 @@ +--- +package com.jessebrault.site +--- + + + + <% bodyChildren -> pageChildren.each { bodyChildren << it } %> + + diff --git a/pages/groovy/com/jessebrault/site/BiographyPage.groovy b/pages/groovy/com/jessebrault/site/BiographyPage.groovy index a36926a..6526d95 100644 --- a/pages/groovy/com/jessebrault/site/BiographyPage.groovy +++ b/pages/groovy/com/jessebrault/site/BiographyPage.groovy @@ -15,7 +15,6 @@ class BiographyPage extends WvcPageView { @Inject BiographyPage(TitleMaker titleMaker, @InjectText('/Biography.md') Text biography) { - super(BiographyPage.getResource('BiographyPage.wvc')) this.titleMaker = titleMaker this.biography = biography } @@ -24,7 +23,7 @@ class BiographyPage extends WvcPageView { biography.render() } - String renderTitle() { + String getTitle() { titleMaker.makeTitle(pageTitle) } diff --git a/pages/groovy/com/jessebrault/site/CompositionsPage.groovy b/pages/groovy/com/jessebrault/site/CompositionsPage.groovy new file mode 100644 index 0000000..ddfa89d --- /dev/null +++ b/pages/groovy/com/jessebrault/site/CompositionsPage.groovy @@ -0,0 +1,22 @@ +package com.jessebrault.site + +import com.jessebrault.site.util.TitleMaker +import com.jessebrault.ssg.page.PageSpec +import com.jessebrault.ssg.view.WvcPageView +import jakarta.inject.Inject + +@PageSpec(name = 'Compositions', path = '/compositions') +class CompositionsPage extends WvcPageView { + + private final TitleMaker titleMaker + + @Inject + CompositionsPage(TitleMaker titleMaker) { + this.titleMaker = titleMaker + } + + String getTitle() { + titleMaker.makeTitle(pageTitle) + } + +} diff --git a/pages/resources/com/jessebrault/site/BiographyPage.wvc b/pages/resources/com/jessebrault/site/BiographyPage.wvc deleted file mode 100644 index 2e32da1..0000000 --- a/pages/resources/com/jessebrault/site/BiographyPage.wvc +++ /dev/null @@ -1,14 +0,0 @@ ---- -package com.jessebrault.site ---- - - - - <%= renderTitle() %> - - -
- <%= renderBiography() %> -
- - diff --git a/pages/resources/com/jessebrault/site/BiographyPageTemplate.wvc b/pages/resources/com/jessebrault/site/BiographyPageTemplate.wvc new file mode 100644 index 0000000..7660891 --- /dev/null +++ b/pages/resources/com/jessebrault/site/BiographyPageTemplate.wvc @@ -0,0 +1,8 @@ +--- +package com.jessebrault.site +--- + +
+ <%= renderBiography() %> +
+
diff --git a/pages/resources/com/jessebrault/site/CompositionsPageTemplate.wvc b/pages/resources/com/jessebrault/site/CompositionsPageTemplate.wvc new file mode 100644 index 0000000..2e2efef --- /dev/null +++ b/pages/resources/com/jessebrault/site/CompositionsPageTemplate.wvc @@ -0,0 +1,6 @@ +--- +package com.jessebrault.site +--- + +

Compositions

+
diff --git a/src/main/groovy/com/jessebrault/site/util/TitleMaker.groovy b/src/main/groovy/com/jessebrault/site/util/TitleMaker.groovy index 6ea8c5b..5eca129 100644 --- a/src/main/groovy/com/jessebrault/site/util/TitleMaker.groovy +++ b/src/main/groovy/com/jessebrault/site/util/TitleMaker.groovy @@ -1,17 +1,19 @@ package com.jessebrault.site.util -import groowt.util.fp.provider.Provider +import jakarta.inject.Inject +import jakarta.inject.Named class TitleMaker { - private final Provider siteTitleProvider + private final String siteTitle - TitleMaker(Provider siteTitleProvider) { - this.siteTitleProvider = siteTitleProvider + @Inject + TitleMaker(@Named('siteName') String siteTitle) { + this.siteTitle = siteTitle } String makeTitle(String pageTitle) { - this.siteTitleProvider.get() + " — " + pageTitle + this.siteTitle + " — " + pageTitle } } diff --git a/ssg/default.groovy b/ssg/default.groovy index 168b8fb..999e4d3 100644 --- a/ssg/default.groovy +++ b/ssg/default.groovy @@ -1,8 +1,8 @@ +import com.jessebrault.site.util.TitleMaker import com.jessebrault.ssg.buildscript.BuildScriptBase import groovy.transform.BaseScript -import com.jessebrault.site.util.TitleMaker -import static groowt.util.di.BindingUtil.toSingleton +import static groowt.util.di.BindingUtil.toSelf @BaseScript BuildScriptBase base @@ -12,7 +12,7 @@ build { baseUrl 'https://jessebrault.com' objectFactoryBuilder.configure { configureRegistry { - bind(TitleMaker, toSingleton(new TitleMaker(siteName))) + bind(TitleMaker, toSelf()) } } }