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())
}
}
}