Project documentation infrastructure

This commit adds support for an `HelpDocument` that can be generated
alongside the project. Such document can hold an arbitrary number of
sections with pre-defined sections such as "Getting Started" and "Next
Steps".

A default contributor retrieves the links for requested dependencies
and add them to the document.

Closes gh-353

Co-authored-by: Madhura Bhave <mbhave@pivotal.io>
This commit is contained in:
Stephane Nicoll
2019-02-18 11:33:33 +01:00
committed by Madhura Bhave
parent 2746a3a6e7
commit 924a73310a
26 changed files with 1384 additions and 4 deletions

View File

@@ -89,8 +89,8 @@ public class InitializrAutoConfiguration {
}
@Bean
@ConditionalOnMissingBean
public TemplateRenderer templateRenderer(Environment environment,
@ConditionalOnMissingBean(TemplateRenderer.class)
public MustacheTemplateRenderer templateRenderer(Environment environment,
ObjectProvider<CacheManager> cacheManager) {
return new MustacheTemplateRenderer("classpath:/templates",
determineCache(environment, cacheManager.getIfAvailable()));

View File

@@ -24,6 +24,7 @@ import java.util.Map;
import io.spring.initializr.generator.io.IndentingWriterFactory;
import io.spring.initializr.generator.io.SimpleIndentStrategy;
import io.spring.initializr.generator.io.template.MustacheTemplateRenderer;
import io.spring.initializr.generator.project.ProjectDirectoryFactory;
import io.spring.initializr.generator.spring.test.InitializrMetadataTestBuilder;
import io.spring.initializr.generator.spring.test.ProjectAssert;
@@ -206,6 +207,11 @@ public class ProjectGenerationInvokerTests {
return IndentingWriterFactory.create(new SimpleIndentStrategy("\t"));
}
@Bean
public MustacheTemplateRenderer templateRenderer() {
return new MustacheTemplateRenderer("classpath:/templates");
}
@Bean
public ProjectDirectoryFactory projectDirectoryFactory() {
return (description) -> Files.createTempDirectory("project-");