Changed texts in special pages to be a collection rather than a map.
This commit is contained in:
parent
fd49b34756
commit
12e44c3e00
@ -3,12 +3,12 @@ package com.jessebrault.ssg.part
|
||||
import groovy.transform.ToString
|
||||
|
||||
@ToString(includeFields = true)
|
||||
class PartsMap {
|
||||
class EmbeddablePartsMap {
|
||||
|
||||
@Delegate
|
||||
private final Map<String, EmbeddablePart> partsMap = [:]
|
||||
|
||||
PartsMap(Collection<Part> parts) {
|
||||
EmbeddablePartsMap(Collection<Part> parts) {
|
||||
Objects.requireNonNull(parts)
|
||||
parts.each {
|
||||
this.put(it.name, new EmbeddablePart(it))
|
@ -1,9 +1,9 @@
|
||||
package com.jessebrault.ssg.specialpage
|
||||
|
||||
import com.jessebrault.ssg.part.Part
|
||||
import com.jessebrault.ssg.part.PartsMap
|
||||
import com.jessebrault.ssg.part.EmbeddablePartsMap
|
||||
import com.jessebrault.ssg.text.EmbeddableTextsCollection
|
||||
import com.jessebrault.ssg.text.Text
|
||||
import com.jessebrault.ssg.text.TextsMap
|
||||
import groovy.text.GStringTemplateEngine
|
||||
import groovy.text.TemplateEngine
|
||||
|
||||
@ -14,8 +14,8 @@ class GspSpecialPageRenderer implements SpecialPageRenderer {
|
||||
@Override
|
||||
String render(String text, Collection<Text> texts, Collection<Part> parts) {
|
||||
engine.createTemplate(text).make([
|
||||
texts: new TextsMap(texts),
|
||||
parts: new PartsMap(parts)
|
||||
texts: new EmbeddableTextsCollection(texts),
|
||||
parts: new EmbeddablePartsMap(parts)
|
||||
])
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.jessebrault.ssg.template
|
||||
|
||||
import com.jessebrault.ssg.part.Part
|
||||
import com.jessebrault.ssg.part.PartsMap
|
||||
import com.jessebrault.ssg.part.EmbeddablePartsMap
|
||||
import com.jessebrault.ssg.text.FrontMatter
|
||||
import groovy.text.GStringTemplateEngine
|
||||
import groovy.text.TemplateEngine
|
||||
@ -15,7 +15,7 @@ class GspTemplateRenderer implements TemplateRenderer {
|
||||
engine.createTemplate(template.text).make([
|
||||
frontMatter: frontMatter,
|
||||
text: text,
|
||||
parts: new PartsMap(parts)
|
||||
parts: new EmbeddablePartsMap(parts)
|
||||
])
|
||||
}
|
||||
|
||||
|
@ -18,4 +18,8 @@ import groovy.transform.TupleConstructor
|
||||
this.text.type.frontMatterGetter.get(this.text.text)
|
||||
}
|
||||
|
||||
String getPath() {
|
||||
this.text.path
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,19 @@
|
||||
package com.jessebrault.ssg.text
|
||||
|
||||
import groovy.transform.ToString
|
||||
|
||||
@ToString(includeFields = true)
|
||||
class EmbeddableTextsCollection {
|
||||
|
||||
@Delegate
|
||||
private final Collection<EmbeddableText> embeddableTexts = []
|
||||
|
||||
EmbeddableTextsCollection(Collection<Text> texts) {
|
||||
Objects.requireNonNull(texts).each {
|
||||
this << new EmbeddableText(it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package com.jessebrault.ssg.text
|
||||
|
||||
import groovy.transform.ToString
|
||||
|
||||
@ToString(includeFields = true)
|
||||
class TextsMap {
|
||||
|
||||
@Delegate
|
||||
private final Map<String, EmbeddableText> textsMap = [:]
|
||||
|
||||
TextsMap(Collection<Text> texts) {
|
||||
Objects.requireNonNull(texts)
|
||||
texts.each {
|
||||
this.put(it.path, new EmbeddableText(it))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -87,7 +87,7 @@ class StaticSiteGeneratorTests {
|
||||
|
||||
@Test
|
||||
void outputsSpecialPage() {
|
||||
new FileTreeBuilder(this.specialPagesDir).file('special.gsp', $/<%= texts['test'].render() %>/$)
|
||||
new FileTreeBuilder(this.specialPagesDir).file('special.gsp', $/<%= texts.find { it.path == 'test' }.render() %>/$)
|
||||
new FileTreeBuilder(this.templatesDir).file('template.gsp', '<%= 1 + 1 %>')
|
||||
new FileTreeBuilder(this.textsDir).file('test.md', '---\ntemplate: template.gsp\n---\nHello, World!')
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user