diff --git a/cli/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorCli.groovy b/cli/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorCli.groovy index 59806e8..5af4633 100644 --- a/cli/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorCli.groovy +++ b/cli/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorCli.groovy @@ -1,30 +1,9 @@ package com.jessebrault.ssg -import com.jessebrault.ssg.text.MarkdownFrontMatterGetter -import com.jessebrault.ssg.pagetemplate.GspRenderer -import com.jessebrault.ssg.pagetemplate.PageTemplatesFactoryImpl -import com.jessebrault.ssg.text.TextFilesFactoryImpl -import com.jessebrault.ssg.text.MarkdownRenderer - class StaticSiteGeneratorCli { static void main(String[] args) { -// def config = new Config( -// textFilesFactory: new TextFilesFactoryImpl(), -// templatesFactory: new PageTemplatesFactoryImpl(), -// markdownFrontMatterGetter: new MarkdownFrontMatterGetter(), -// markdownRenderer: new MarkdownRenderer(), -// gspRenderer: new GspRenderer() -// ) -// def ssg = new StaticSiteGeneratorImpl(config) -// def spec = new SiteSpec( -// buildDir: new File('build'), -// staticDir: new File('static'), -// textsDir: new File('texts'), -// templatesDir: new File('templates'), -// templatePartsDir: new File('templatePartsDir') -// ) -// ssg.generate(spec) + } } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorImpl.groovy b/lib/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorImpl.groovy index 361f57f..6bcaf40 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorImpl.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/StaticSiteGeneratorImpl.groovy @@ -6,10 +6,14 @@ import com.jessebrault.ssg.util.FileNameHandler import com.jessebrault.ssg.util.RelativePathHandler import org.slf4j.Logger import org.slf4j.LoggerFactory +import org.slf4j.Marker +import org.slf4j.MarkerFactory class StaticSiteGeneratorImpl implements StaticSiteGenerator { private static final Logger logger = LoggerFactory.getLogger(StaticSiteGeneratorImpl) + private static final Marker enter = MarkerFactory.getMarker('ENTER') + private static final Marker exit = MarkerFactory.getMarker('EXIT') private final Config config private final TextFilesFactory textFilesFactory @@ -23,8 +27,10 @@ class StaticSiteGeneratorImpl implements StaticSiteGenerator { @Override void generate(SiteSpec spec) { + logger.trace(enter, 'spec: {}', spec) def textFiles = this.textFilesFactory.getTextFiles(spec.textsDir) def pageTemplates = this.pageTemplatesFactory.getTemplates(spec.templatesDir) + logger.debug('textFiles: {}, pageTemplates: {}', textFiles, pageTemplates) textFiles.each { logger.info('processing textFile: {}', it.relativePath) def fileNameHandler = new FileNameHandler(it.file) @@ -67,6 +73,7 @@ class StaticSiteGeneratorImpl implements StaticSiteGenerator { logger.info('writing result to {}', outFile) outFile.write(result) } + logger.trace(exit, '') } } diff --git a/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy b/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy index ebcb801..087ba94 100644 --- a/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy +++ b/lib/src/main/groovy/com/jessebrault/ssg/util/FileNameHandler.groovy @@ -8,7 +8,7 @@ class FileNameHandler { private final File file String getExtension() { - this.file.name.substring(this.file.name.lastIndexOf('.') + 1) + this.file.name.substring(this.file.name.lastIndexOf('.')) } } diff --git a/lib/src/test/groovy/com/jessebrault/ssg/StaticSiteGeneratorTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/StaticSiteGeneratorTests.groovy index fcc390d..e28f440 100644 --- a/lib/src/test/groovy/com/jessebrault/ssg/StaticSiteGeneratorTests.groovy +++ b/lib/src/test/groovy/com/jessebrault/ssg/StaticSiteGeneratorTests.groovy @@ -8,6 +8,8 @@ import com.jessebrault.ssg.text.MarkdownRenderer import com.jessebrault.ssg.text.TextFileType import com.jessebrault.ssg.text.TextFilesFactoryImpl import org.junit.jupiter.api.Test +import org.slf4j.Logger +import org.slf4j.LoggerFactory import static org.junit.jupiter.api.Assertions.assertEquals import static org.junit.jupiter.api.Assertions.assertTrue diff --git a/lib/src/test/groovy/com/jessebrault/ssg/pagetemplate/PageTemplatesFactoryTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/pagetemplate/PageTemplatesFactoryTests.groovy index b677ef7..5992275 100644 --- a/lib/src/test/groovy/com/jessebrault/ssg/pagetemplate/PageTemplatesFactoryTests.groovy +++ b/lib/src/test/groovy/com/jessebrault/ssg/pagetemplate/PageTemplatesFactoryTests.groovy @@ -6,7 +6,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals class PageTemplatesFactoryTests { - private final PageTemplatesFactory templateFactory = new PageTemplatesFactoryImpl() + private static final PageTemplateType gspType = new PageTemplateType(['.gsp'], null) + + private final PageTemplatesFactory templateFactory = new PageTemplatesFactoryImpl([gspType]) @Test void findsTemplate() { @@ -19,6 +21,7 @@ class PageTemplatesFactoryTests { def t0 = r[0] assertEquals('test.gsp', t0.relativePath) assertEquals('<% out << text %>', t0.file.text) + assertEquals(gspType, t0.type) } @Test @@ -35,6 +38,7 @@ class PageTemplatesFactoryTests { def t0 = r[0] assertEquals('nested/nested.gsp', t0.relativePath) assertEquals('<%= text %>', t0.file.text) + assertEquals(gspType, t0.type) } @Test diff --git a/lib/src/test/groovy/com/jessebrault/ssg/text/TextsFilesFactoryTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/text/TextsFilesFactoryTests.groovy index a080223..aab417b 100644 --- a/lib/src/test/groovy/com/jessebrault/ssg/text/TextsFilesFactoryTests.groovy +++ b/lib/src/test/groovy/com/jessebrault/ssg/text/TextsFilesFactoryTests.groovy @@ -6,7 +6,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals class TextsFilesFactoryTests { - private final TextFilesFactory textFilesFactory = new TextFilesFactoryImpl() + private static final TextFileType markdownType = new TextFileType(['.md'], null, null) + + private final TextFilesFactory textFilesFactory = new TextFilesFactoryImpl([markdownType]) @Test void findsFile() { @@ -19,7 +21,7 @@ class TextsFilesFactoryTests { def f0 = r[0] assertEquals('test.md', f0.relativePath) assertEquals('**Hello, World!**', f0.file.text) - assertEquals(TextFile.Type.MARKDOWN, f0.type) + assertEquals(markdownType, f0.type) } @Test @@ -35,7 +37,7 @@ class TextsFilesFactoryTests { def f0 = r[0] assertEquals('nested/nested.md', f0.relativePath) assertEquals('**Hello!**', f0.file.text) - assertEquals(TextFile.Type.MARKDOWN, f0.type) + assertEquals(markdownType, f0.type) } @Test diff --git a/lib/src/test/groovy/com/jessebrault/ssg/util/FileNameHandlerTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/util/FileNameHandlerTests.groovy new file mode 100644 index 0000000..2e7e1ca --- /dev/null +++ b/lib/src/test/groovy/com/jessebrault/ssg/util/FileNameHandlerTests.groovy @@ -0,0 +1,18 @@ +package com.jessebrault.ssg.util + +import org.junit.jupiter.api.Test + +import static org.junit.jupiter.api.Assertions.assertEquals + +class FileNameHandlerTests { + + private final FileNameHandler fileNameHandler = new FileNameHandler() + + @Test + void getsCorrectExtension() { + def file = new File('hello.txt') + def extension = new FileNameHandler(file).getExtension() + assertEquals('.txt', extension) + } + +} diff --git a/lib/src/test/groovy/com/jessebrault/ssg/util/RelativePathHandlerTests.groovy b/lib/src/test/groovy/com/jessebrault/ssg/util/RelativePathHandlerTests.groovy new file mode 100644 index 0000000..a82f87e --- /dev/null +++ b/lib/src/test/groovy/com/jessebrault/ssg/util/RelativePathHandlerTests.groovy @@ -0,0 +1,15 @@ +package com.jessebrault.ssg.util + +import org.junit.jupiter.api.Test + +import static org.junit.jupiter.api.Assertions.assertEquals + +class RelativePathHandlerTests { + + @Test + void stripsExtension() { + def stripped = new RelativePathHandler('hello.txt').getWithoutExtension() + assertEquals('hello', stripped) + } + +}