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 {
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

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
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.ssg.template.gspe.component.ComponentsContainer
import com.jessebrault.gcp.component.Component
import com.jessebrault.gcp.component.ComponentsContainer
import groovy.text.Template
import groovy.text.TemplateEngine
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.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.StackFunctionFsmBuilderImpl

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component
package com.jessebrault.gcp.component
interface Component {
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.ssg.template.gspe.component.node.ComponentNode
import com.jessebrault.ssg.template.gspe.component.node.DollarReferenceValue
import com.jessebrault.ssg.template.gspe.component.node.DollarScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.ExpressionScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.GStringValue
import com.jessebrault.ssg.template.gspe.component.node.KeyAndValue
import com.jessebrault.ssg.template.gspe.component.node.KeysAndValues
import com.jessebrault.ssg.template.gspe.component.node.Node
import com.jessebrault.ssg.template.gspe.component.node.ScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.StringValue
import com.jessebrault.gcp.component.ComponentToken.Type
import com.jessebrault.gcp.component.node.ComponentNode
import com.jessebrault.gcp.component.node.DollarReferenceValue
import com.jessebrault.gcp.component.node.DollarScriptletValue
import com.jessebrault.gcp.component.node.ExpressionScriptletValue
import com.jessebrault.gcp.component.node.GStringValue
import com.jessebrault.gcp.component.node.KeyAndValue
import com.jessebrault.gcp.component.node.KeysAndValues
import com.jessebrault.gcp.component.node.Node
import com.jessebrault.gcp.component.node.ScriptletValue
import com.jessebrault.gcp.component.node.StringValue
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

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.ssg.template.gspe.component.node.ComponentNode
import com.jessebrault.ssg.template.gspe.component.node.DollarReferenceValue
import com.jessebrault.ssg.template.gspe.component.node.DollarScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.ExpressionScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.GStringValue
import com.jessebrault.ssg.template.gspe.component.node.KeyAndValue
import com.jessebrault.ssg.template.gspe.component.node.KeysAndValues
import com.jessebrault.ssg.template.gspe.component.node.NodeVisitor
import com.jessebrault.ssg.template.gspe.component.node.ScriptletValue
import com.jessebrault.ssg.template.gspe.component.node.StringValue
import com.jessebrault.gcp.component.node.BooleanValue
import com.jessebrault.gcp.component.node.ComponentNode
import com.jessebrault.gcp.component.node.DollarReferenceValue
import com.jessebrault.gcp.component.node.DollarScriptletValue
import com.jessebrault.gcp.component.node.ExpressionScriptletValue
import com.jessebrault.gcp.component.node.GStringValue
import com.jessebrault.gcp.component.node.KeyAndValue
import com.jessebrault.gcp.component.node.KeysAndValues
import com.jessebrault.gcp.component.node.NodeVisitor
import com.jessebrault.gcp.component.node.ScriptletValue
import com.jessebrault.gcp.component.node.StringValue
// NOT THREAD SAFE, and must be used exactly once
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

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.FunctionFsmBuilderImpl
import com.jessebrault.ssg.template.gspe.PatternFunction
import com.jessebrault.gcp.PatternFunction
import static ComponentToken.Type
@ -26,7 +26,6 @@ class ComponentTokenizer {
//'\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 dollarOpen = new PatternFunction(~/^\$\{/)
private static final PatternFunction percent = new PatternFunction(~/^%/)
private static final PatternFunction expressionScriptletGroovy = 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.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.LoggerFactory

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component
package com.jessebrault.gcp.component
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 {
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 {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node
package com.jessebrault.gcp.component.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 {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node
package com.jessebrault.gcp.component.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 {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node
package com.jessebrault.gcp.component.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 {

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 {

View File

@ -1,4 +1,4 @@
package com.jessebrault.ssg.template.gspe.component.node
package com.jessebrault.gcp.component.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 {

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 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.FirstParam
import groovy.transform.stc.SimpleType
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test
import org.slf4j.Logger
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.assertTrue
@ -82,7 +82,7 @@ class ComponentParserTests {
private void selfClosing(
Queue<ComponentToken> tokens,
@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
) {
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.slf4j.Logger
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.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 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
class DollarGroovyParserTests {

View File

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

View File

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

View File

@ -1,2 +1,2 @@
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 = []
}