Various bug fixes.
This commit is contained in:
parent
e462c60646
commit
654a089332
@ -1,8 +1,7 @@
|
||||
package com.jessebrault.ssg
|
||||
|
||||
import com.jessebrault.di.ObjectFactory
|
||||
import com.jessebrault.di.RegistryObjectFactory
|
||||
import com.jessebrault.ssg.view.SkipTemplate
|
||||
import com.jessebrault.ssg.view.WvcCompiler
|
||||
import com.jessebrault.ssg.view.WvcPageView
|
||||
import groowt.view.component.factory.ComponentFactories
|
||||
import groowt.view.component.web.DefaultWebViewComponentContext
|
||||
@ -13,7 +12,7 @@ import groowt.view.component.web.WebViewComponentScope
|
||||
class DefaultPageContextFactory implements PageContextFactory {
|
||||
|
||||
protected WebViewComponent makeComponent(
|
||||
ObjectFactory objectFactory,
|
||||
RegistryObjectFactory objectFactory,
|
||||
Class<? extends WebViewComponent> wvcClass,
|
||||
Map attr,
|
||||
Object[] args
|
||||
@ -32,7 +31,7 @@ class DefaultPageContextFactory implements PageContextFactory {
|
||||
@Override
|
||||
WebViewComponentContext makeContext(
|
||||
WvcPageView wvcPageView,
|
||||
ObjectFactory buildObjectFactory,
|
||||
RegistryObjectFactory buildObjectFactory,
|
||||
Set<Class<? extends WebViewComponent>> allWvcClasses
|
||||
) {
|
||||
new DefaultWebViewComponentContext().tap {
|
||||
@ -47,7 +46,7 @@ class DefaultPageContextFactory implements PageContextFactory {
|
||||
|
||||
// set the template
|
||||
if (component.componentTemplate == null && !wvcClass.isAnnotationPresent(SkipTemplate)) {
|
||||
def wvcCompilerFactory = buildObjectFactory.createInstance(WvcCompilerFactory)
|
||||
def wvcCompilerFactory = buildObjectFactory.get(WvcCompilerFactory)
|
||||
def wvcCompiler = wvcCompilerFactory.getWvcCompiler()
|
||||
def compileResult = wvcCompiler.compileTemplate(
|
||||
wvcClass,
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jessebrault.ssg;
|
||||
|
||||
import com.jessebrault.di.ObjectFactory;
|
||||
import com.jessebrault.di.RegistryObjectFactory;
|
||||
import com.jessebrault.fp.either.Either;
|
||||
import com.jessebrault.ssg.page.Page;
|
||||
import com.jessebrault.ssg.util.Diagnostic;
|
||||
@ -25,7 +26,7 @@ public class DefaultPageRenderer implements PageRenderer {
|
||||
public Either<Diagnostic, String> renderPage(
|
||||
Page page,
|
||||
String baseUrl,
|
||||
ObjectFactory buildObjectFactory,
|
||||
RegistryObjectFactory buildObjectFactory,
|
||||
Set<Class<? extends WebViewComponent>> allWvcClasses
|
||||
) {
|
||||
// create the view
|
||||
|
||||
@ -6,24 +6,25 @@ import com.jessebrault.ssg.page.Page;
|
||||
import com.jessebrault.ssg.page.PageFactory;
|
||||
import com.jessebrault.ssg.page.PageSpec;
|
||||
import com.jessebrault.ssg.view.PageView;
|
||||
import com.jessebrault.ssg.view.WvcCompiler;
|
||||
import io.github.classgraph.AnnotationInfo;
|
||||
import io.github.classgraph.ClassInfoList;
|
||||
import io.github.classgraph.ScanResult;
|
||||
import jakarta.inject.Inject;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
public class DefaultPageScanner implements PageScanner {
|
||||
|
||||
private final ExecutorService executorService;
|
||||
private final WvcCompiler wvcCompiler;
|
||||
private final WvcCompilerFactory wvcCompilerFactory;
|
||||
|
||||
@Inject
|
||||
public DefaultPageScanner(ExecutorService executorService, WvcCompiler wvcCompiler) {
|
||||
public DefaultPageScanner(ExecutorService executorService, WvcCompilerFactory wvcCompilerFactory) {
|
||||
this.executorService = executorService;
|
||||
this.wvcCompiler = wvcCompiler;
|
||||
this.wvcCompilerFactory = wvcCompilerFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -47,7 +48,7 @@ public class DefaultPageScanner implements PageScanner {
|
||||
? classInfo.getSimpleName() + "Template.wvc"
|
||||
: pageSpec.templateResource(),
|
||||
"objectFactory", buildObjectFactory,
|
||||
"wvcCompiler", this.wvcCompiler
|
||||
"wvcCompiler", this.wvcCompilerFactory.getWvcCompiler()
|
||||
)));
|
||||
}
|
||||
}, this.executorService);
|
||||
|
||||
@ -6,6 +6,7 @@ import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Path;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@ -13,12 +14,11 @@ public class FilePageWriter implements PageWriter {
|
||||
|
||||
@Override
|
||||
public void write(Page page, File outputDir, String renderedPage) {
|
||||
if (!outputDir.mkdirs()) {
|
||||
throw new RuntimeException("Could not make directories for outputDir " + outputDir);
|
||||
};
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
outputDir.mkdirs();
|
||||
|
||||
// calculate target path
|
||||
final List<String> pathParts = Arrays.asList(page.getPath().split("/"));
|
||||
final List<String> pathParts = new ArrayList<>(Arrays.asList(page.getPath().split("/"))); // because Arrays.asList returns immutable
|
||||
if (page.getPath().endsWith("/")) {
|
||||
pathParts.add("index");
|
||||
}
|
||||
@ -30,9 +30,9 @@ public class FilePageWriter implements PageWriter {
|
||||
final File outputFile = new File(outputDir, path + page.getFileExtension());
|
||||
|
||||
// make dirs and write
|
||||
if (!outputFile.getParentFile().mkdirs()) {
|
||||
throw new RuntimeException("Could not make parent directories for " + outputFile);
|
||||
}
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
outputFile.getParentFile().mkdirs();
|
||||
|
||||
try (final FileWriter writer = new FileWriter(outputFile)) {
|
||||
writer.write(renderedPage);
|
||||
} catch (IOException e) {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jessebrault.ssg;
|
||||
|
||||
import com.jessebrault.di.ObjectFactory;
|
||||
import com.jessebrault.di.RegistryObjectFactory;
|
||||
import com.jessebrault.ssg.view.WvcPageView;
|
||||
import groowt.view.component.web.WebViewComponent;
|
||||
import groowt.view.component.web.WebViewComponentContext;
|
||||
@ -10,7 +11,7 @@ import java.util.Set;
|
||||
public interface PageContextFactory {
|
||||
WebViewComponentContext makeContext(
|
||||
WvcPageView wvcPageView,
|
||||
ObjectFactory buildObjectFactory,
|
||||
RegistryObjectFactory buildObjectFactory,
|
||||
Set<Class<? extends WebViewComponent>> allWvcClasses
|
||||
);
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package com.jessebrault.ssg;
|
||||
|
||||
import com.jessebrault.di.ObjectFactory;
|
||||
import com.jessebrault.di.RegistryObjectFactory;
|
||||
import com.jessebrault.fp.either.Either;
|
||||
import com.jessebrault.ssg.page.Page;
|
||||
import com.jessebrault.ssg.util.Diagnostic;
|
||||
@ -12,7 +12,7 @@ public interface PageRenderer {
|
||||
Either<Diagnostic, String> renderPage(
|
||||
Page page,
|
||||
String baseUrl,
|
||||
ObjectFactory buildObjectFactory,
|
||||
RegistryObjectFactory buildObjectFactory,
|
||||
Set<Class<? extends WebViewComponent>> allWvcClasses
|
||||
);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jessebrault.ssg.text;
|
||||
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.inject.Named;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -22,7 +23,7 @@ public class TextsDirMarkdownTextSupplier implements TextSupplier {
|
||||
|
||||
@Inject
|
||||
public TextsDirMarkdownTextSupplier(
|
||||
File projectDir,
|
||||
@Named("projectDir") File projectDir,
|
||||
ExecutorService executorService,
|
||||
MarkdownTextConverter markdownTextConverter
|
||||
) {
|
||||
@ -40,7 +41,7 @@ public class TextsDirMarkdownTextSupplier implements TextSupplier {
|
||||
final List<CompletableFuture<Void>> textFutures = walkStream
|
||||
.map(path -> {
|
||||
return CompletableFuture.runAsync(() -> {
|
||||
if (path.endsWith(".md")) {
|
||||
if (path.toString().endsWith(".md")) {
|
||||
results.add(this.markdownTextConverter.convert(textsDir.toFile(), path.toFile()));
|
||||
}
|
||||
}, this.executorService);
|
||||
|
||||
@ -128,7 +128,7 @@ abstract class AbstractBuildCommand extends AbstractSubCommand {
|
||||
bind(named('scriptBaseUrls', List), toSingleton(scriptBaseUrls))
|
||||
bind(named('projectDir', File), toSingleton(projectDir))
|
||||
bind(TextsGetter, toClass(DefaultTextsGetter))
|
||||
bind(WvcCompiler, toSelf())
|
||||
bind(WvcCompilerFactory, toClass(DefaultWvcCompilerFactory))
|
||||
bind(ComponentTemplateClassFactory, toClass(SimpleComponentTemplateClassFactory))
|
||||
bind(TextsDirMarkdownTextSupplier, toSelf())
|
||||
bind(MarkdownTextConverter, toSelf())
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
[versions]
|
||||
classgraph = '4.8.184'
|
||||
commonmark = '0.24.0'
|
||||
di = '0.1.0'
|
||||
di = '0.2.0-SNAPSHOT'
|
||||
fp = '0.1.0'
|
||||
groovy = '4.0.27'
|
||||
groowt = '0.1.4'
|
||||
|
||||
Loading…
Reference in New Issue
Block a user