Moved template stuff to gcp.

This commit is contained in:
Jesse Brault 2023-01-23 13:19:56 +01:00
parent 98086f89ac
commit fe855181af
39 changed files with 77 additions and 76 deletions

View File

@ -22,5 +22,5 @@ dependencies {
} }
jar { jar {
archivesBaseName = 'ssg-template' archivesBaseName = 'gcp'
} }

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import groovy.transform.PackageScope import groovy.transform.PackageScope

View File

@ -1,6 +1,6 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import com.jessebrault.ssg.template.gspe.component.ComponentsContainer import com.jessebrault.gcp.component.ComponentsContainer
import groovy.text.Template import groovy.text.Template
class GspeTemplate implements Template { class GspeTemplate implements Template {

View File

@ -1,7 +1,7 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import com.jessebrault.ssg.template.gspe.component.Component import com.jessebrault.gcp.component.Component
import com.jessebrault.ssg.template.gspe.component.ComponentsContainer import com.jessebrault.gcp.component.ComponentsContainer
import groovy.text.Template import groovy.text.Template
import groovy.text.TemplateEngine import groovy.text.TemplateEngine
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import groovy.transform.PackageScope import groovy.transform.PackageScope
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import com.jessebrault.fsm.stackfunction.StackFunctionFsmBuilder import com.jessebrault.fsm.stackfunction.StackFunctionFsmBuilder
import com.jessebrault.fsm.stackfunction.StackFunctionFsmBuilderImpl import com.jessebrault.fsm.stackfunction.StackFunctionFsmBuilderImpl

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
interface Component { interface Component {
String render(Map<String, ?> attr, String body) String render(Map<String, ?> attr, String body)

View File

@ -0,0 +1,5 @@
package com.jessebrault.gcp.component
interface ComponentFactory {
Component get()
}

View File

@ -1,19 +1,19 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import com.jessebrault.ssg.template.gspe.component.ComponentToken.Type import com.jessebrault.gcp.component.ComponentToken.Type
import com.jessebrault.ssg.template.gspe.component.node.ComponentNode import com.jessebrault.gcp.component.node.ComponentNode
import com.jessebrault.ssg.template.gspe.component.node.DollarReferenceValue import com.jessebrault.gcp.component.node.DollarReferenceValue
import com.jessebrault.ssg.template.gspe.component.node.DollarScriptletValue import com.jessebrault.gcp.component.node.DollarScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.ExpressionScriptletValue import com.jessebrault.gcp.component.node.ExpressionScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.GStringValue import com.jessebrault.gcp.component.node.GStringValue
import com.jessebrault.ssg.template.gspe.component.node.KeyAndValue import com.jessebrault.gcp.component.node.KeyAndValue
import com.jessebrault.ssg.template.gspe.component.node.KeysAndValues import com.jessebrault.gcp.component.node.KeysAndValues
import com.jessebrault.ssg.template.gspe.component.node.Node import com.jessebrault.gcp.component.node.Node
import com.jessebrault.ssg.template.gspe.component.node.ScriptletValue import com.jessebrault.gcp.component.node.ScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.StringValue import com.jessebrault.gcp.component.node.StringValue
import groovy.transform.PackageScope import groovy.transform.PackageScope
import static com.jessebrault.ssg.template.gspe.component.ComponentToken.Type.* import static com.jessebrault.gcp.component.ComponentToken.Type.*
/** /**
* NOT thread safe * NOT thread safe

View File

@ -1,16 +1,16 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import com.jessebrault.ssg.template.gspe.component.node.BooleanValue import com.jessebrault.gcp.component.node.BooleanValue
import com.jessebrault.ssg.template.gspe.component.node.ComponentNode import com.jessebrault.gcp.component.node.ComponentNode
import com.jessebrault.ssg.template.gspe.component.node.DollarReferenceValue import com.jessebrault.gcp.component.node.DollarReferenceValue
import com.jessebrault.ssg.template.gspe.component.node.DollarScriptletValue import com.jessebrault.gcp.component.node.DollarScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.ExpressionScriptletValue import com.jessebrault.gcp.component.node.ExpressionScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.GStringValue import com.jessebrault.gcp.component.node.GStringValue
import com.jessebrault.ssg.template.gspe.component.node.KeyAndValue import com.jessebrault.gcp.component.node.KeyAndValue
import com.jessebrault.ssg.template.gspe.component.node.KeysAndValues import com.jessebrault.gcp.component.node.KeysAndValues
import com.jessebrault.ssg.template.gspe.component.node.NodeVisitor import com.jessebrault.gcp.component.node.NodeVisitor
import com.jessebrault.ssg.template.gspe.component.node.ScriptletValue import com.jessebrault.gcp.component.node.ScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.StringValue import com.jessebrault.gcp.component.node.StringValue
// NOT THREAD SAFE, and must be used exactly once // NOT THREAD SAFE, and must be used exactly once
class ComponentToScriptVisitor extends NodeVisitor { class ComponentToScriptVisitor extends NodeVisitor {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import groovy.transform.TupleConstructor import groovy.transform.TupleConstructor

View File

@ -1,8 +1,8 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import com.jessebrault.fsm.function.FunctionFsmBuilder import com.jessebrault.fsm.function.FunctionFsmBuilder
import com.jessebrault.fsm.function.FunctionFsmBuilderImpl import com.jessebrault.fsm.function.FunctionFsmBuilderImpl
import com.jessebrault.ssg.template.gspe.PatternFunction import com.jessebrault.gcp.PatternFunction
import static ComponentToken.Type import static ComponentToken.Type
@ -26,7 +26,6 @@ class ComponentTokenizer {
//'\u0100' to '\uFFFE' //'\u0100' to '\uFFFE'
private static final PatternFunction dollarReference = new PatternFunction(~/^\$[a-zA-Z_$\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\ufff3][a-zA-Z_$0-9\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\ufff3]*(?=[\s\/>])/) private static final PatternFunction dollarReference = new PatternFunction(~/^\$[a-zA-Z_$\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\ufff3][a-zA-Z_$0-9\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff\u0100-\ufff3]*(?=[\s\/>])/)
private static final PatternFunction dollarOpen = new PatternFunction(~/^\$\{/)
private static final PatternFunction percent = new PatternFunction(~/^%/) private static final PatternFunction percent = new PatternFunction(~/^%/)
private static final PatternFunction expressionScriptletGroovy = new PatternFunction(~/^.*?%>/) private static final PatternFunction expressionScriptletGroovy = new PatternFunction(~/^.*?%>/)
private static final PatternFunction forwardSlash = new PatternFunction(~/^\//) private static final PatternFunction forwardSlash = new PatternFunction(~/^\//)

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import java.lang.annotation.Retention import java.lang.annotation.Retention

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class BooleanValue extends Node { class BooleanValue extends Node {
boolean value boolean value

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class ComponentNode extends Node { class ComponentNode extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class DollarReferenceValue extends Node { class DollarReferenceValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class DollarScriptletValue extends Node { class DollarScriptletValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class ExpressionScriptletValue extends Node { class ExpressionScriptletValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class GStringValue extends Node { class GStringValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class KeyAndValue extends Node { class KeyAndValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class KeysAndValues extends Node { class KeysAndValues extends Node {

View File

@ -0,0 +1,5 @@
package com.jessebrault.gcp.component.node
abstract class Node {
List<Node> children = []
}

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
abstract class NodeVisitor { abstract class NodeVisitor {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class ScriptletValue extends Node { class ScriptletValue extends Node {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node package com.jessebrault.gcp.component.node
class StringValue extends Node { class StringValue extends Node {

View File

@ -1,6 +1,8 @@
package com.jessebrault.ssg.template.gspe package com.jessebrault.gcp
import com.jessebrault.ssg.template.gspe.component.Component import com.jessebrault.gcp.GspeTemplate
import com.jessebrault.gcp.GspeTemplateEngine
import com.jessebrault.gcp.component.Component
import groovy.text.TemplateEngine import groovy.text.TemplateEngine
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test

View File

@ -1,6 +1,6 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import com.jessebrault.ssg.template.gspe.component.node.* import com.jessebrault.gcp.component.node.*
import groovy.transform.stc.ClosureParams import groovy.transform.stc.ClosureParams
import groovy.transform.stc.FirstParam import groovy.transform.stc.FirstParam
import groovy.transform.stc.SimpleType import groovy.transform.stc.SimpleType
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import static com.jessebrault.ssg.template.gspe.component.ComponentToken.Type.* import static com.jessebrault.gcp.component.ComponentToken.Type.*
import static org.junit.jupiter.api.Assertions.assertEquals import static org.junit.jupiter.api.Assertions.assertEquals
import static org.junit.jupiter.api.Assertions.assertTrue import static org.junit.jupiter.api.Assertions.assertTrue
@ -82,7 +82,7 @@ class ComponentParserTests {
private void selfClosing( private void selfClosing(
Queue<ComponentToken> tokens, Queue<ComponentToken> tokens,
@DelegatesTo(value = NodeTester, strategy = Closure.DELEGATE_FIRST) @DelegatesTo(value = NodeTester, strategy = Closure.DELEGATE_FIRST)
@ClosureParams(value = SimpleType, options = ['com.jessebrault.ssg.template.gspe.component.node.ComponentNode']) @ClosureParams(value = SimpleType, options = ['com.jessebrault.gcp.component.node.ComponentNode'])
Closure<Void> tests Closure<Void> tests
) { ) {
def componentNode = this.parser.parse(tokens) def componentNode = this.parser.parse(tokens)

View File

@ -1,11 +1,11 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import org.slf4j.Logger import org.slf4j.Logger
import org.slf4j.LoggerFactory import org.slf4j.LoggerFactory
import static com.jessebrault.ssg.template.gspe.component.ComponentToken.Type.* import static com.jessebrault.gcp.component.ComponentToken.Type.*
import static org.junit.jupiter.api.Assertions.assertEquals import static org.junit.jupiter.api.Assertions.assertEquals
import static org.junit.jupiter.api.Assertions.assertTrue import static org.junit.jupiter.api.Assertions.assertTrue

View File

@ -1,8 +1,8 @@
package com.jessebrault.ssg.template.gspe.component package com.jessebrault.gcp.component
import org.junit.jupiter.api.Test import org.junit.jupiter.api.Test
import static com.jessebrault.ssg.template.gspe.component.DollarGroovyParser.parse import static com.jessebrault.gcp.component.DollarGroovyParser.parse
import static org.junit.jupiter.api.Assertions.assertEquals import static org.junit.jupiter.api.Assertions.assertEquals
class DollarGroovyParserTests { class DollarGroovyParserTests {

View File

@ -1,6 +1,6 @@
package components package components
import com.jessebrault.ssg.template.gspe.component.Component import com.jessebrault.gcp.component.Component
class Greeting implements Component { class Greeting implements Component {

View File

@ -1,6 +1,6 @@
package components package components
import com.jessebrault.ssg.template.gspe.component.Component import com.jessebrault.gcp.component.Component
class Head implements Component { class Head implements Component {

View File

@ -1,2 +1,2 @@
rootProject.name = 'ssg' rootProject.name = 'ssg'
include 'cli', 'lib', 'template' include 'cli', 'gcp', 'lib'

View File

@ -1,5 +0,0 @@
package com.jessebrault.ssg.template.gspe.component
interface ComponentFactory {
Component get()
}

View File

@ -1,5 +0,0 @@
package com.jessebrault.ssg.template.gspe.component.node
abstract class Node {
List<Node> children = []
}