Skip to content

Commit 8867064

Browse files
committed
Fetched and merged with upstream JBake/master
2 parents 7aad1ad + 6e4a165 commit 8867064

File tree

4 files changed

+29
-11
lines changed

4 files changed

+29
-11
lines changed

src/main/java/org/jbake/parser/MarkupEngine.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ public Map<String, Object> parse(Configuration config, File file, String content
9191
// then read engine specific headers
9292
processHeader(context);
9393

94+
if (content.get(Crawler.Attributes.DATE) == null) {
95+
content.put(Crawler.Attributes.DATE, new Date(file.lastModified()));
96+
}
97+
9498
if (config.getString(Keys.DEFAULT_STATUS) != null) {
9599
// default status has been set
96100
if (content.get(Crawler.Attributes.STATUS) == null) {

src/main/java/org/jbake/template/ThymeleafTemplateEngine.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,21 @@ public class ThymeleafTemplateEngine extends AbstractTemplateEngine {
4040
private TemplateEngine templateEngine;
4141
private FileTemplateResolver templateResolver;
4242

43+
private String templateMode;
44+
4345
public ThymeleafTemplateEngine(final CompositeConfiguration config, final ContentStore db, final File destination, final File templatesPath) {
4446
super(config, db, destination, templatesPath);
45-
initializeTemplateEngine();
4647
}
4748

48-
private void initializeTemplateEngine() {
49+
private void initializeTemplateEngine(String mode) {
50+
if (mode.equals(templateMode)) {
51+
return;
52+
}
53+
templateMode = mode;
4954
templateResolver = new FileTemplateResolver();
5055
templateResolver.setPrefix(templatesPath.getAbsolutePath() + File.separatorChar);
5156
templateResolver.setCharacterEncoding(config.getString(Keys.TEMPLATE_ENCODING));
57+
templateResolver.setTemplateMode(mode);
5258
templateEngine = new TemplateEngine();
5359
templateEngine.setTemplateResolver(templateResolver);
5460
try {
@@ -66,7 +72,6 @@ public void renderDocument(final Map<String, Object> model, final String templat
6672
Context context = new Context(locale, wrap(model));
6773
lock.lock();
6874
try {
69-
initializeTemplateEngine();
7075
@SuppressWarnings("unchecked")
7176
Map<String, Object> config = (Map<String, Object>) model.get("config");
7277
@SuppressWarnings("unchecked")
@@ -79,7 +84,7 @@ public void renderDocument(final Map<String, Object> model, final String templat
7984
mode = configMode;
8085
}
8186
}
82-
templateResolver.setTemplateMode(mode);
87+
initializeTemplateEngine(mode);
8388
templateEngine.process(templateName, context, writer);
8489
} finally {
8590
lock.unlock();

src/test/java/org/jbake/app/CrawlerTest.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.jbake.app;
22

3-
import static org.assertj.core.api.Assertions.assertThat;
4-
53
import java.io.File;
64
import java.io.IOException;
75
import java.net.URISyntaxException;
@@ -10,25 +8,29 @@
108
import java.util.List;
119
import java.util.Map;
1210

11+
import com.orientechnologies.orient.core.record.impl.ODocument;
12+
1313
import org.apache.commons.configuration.CompositeConfiguration;
1414
import org.apache.commons.configuration.ConfigurationException;
15+
16+
import org.jbake.app.ConfigUtil.Keys;
17+
1518
import org.apache.commons.configuration.MapConfiguration;
1619
import org.apache.commons.io.FilenameUtils;
1720
import org.hamcrest.BaseMatcher;
1821
import org.hamcrest.Description;
19-
import org.jbake.app.ConfigUtil.Keys;
2022
import org.junit.After;
2123
import org.junit.Assert;
2224
import org.junit.Before;
2325
import org.junit.Test;
2426

25-
import com.orientechnologies.orient.core.record.impl.ODocument;
27+
import static org.assertj.core.api.Assertions.*;
2628

2729
public class CrawlerTest {
2830
private CompositeConfiguration config;
2931
private ContentStore db;
3032
private File sourceFolder;
31-
33+
3234
@Before
3335
public void setup() throws Exception, IOException, URISyntaxException {
3436
URL sourceUrl = this.getClass().getResource("/");
@@ -37,7 +39,7 @@ public void setup() throws Exception, IOException, URISyntaxException {
3739
if (!sourceFolder.exists()) {
3840
throw new Exception("Cannot find sample data structure!");
3941
}
40-
42+
4143
config = ConfigUtil.load(new File(this.getClass().getResource("/").getFile()));
4244
Assert.assertEquals(".html", config.getString(Keys.OUTPUT_EXTENSION));
4345
db = DBUtil.createDataStore("memory", "documents"+System.currentTimeMillis());
@@ -66,6 +68,14 @@ public void crawl() throws ConfigurationException {
6668
.containsValue("../../");
6769
}
6870

71+
List<ODocument> draftPosts = db.getAllContent("post");
72+
DocumentList draftList = DocumentList.wrap(draftPosts.iterator());
73+
for (Map<String,Object> content : list) {
74+
if (content.get(Crawler.Attributes.TITLE).equals("Draft Post")) {
75+
assertThat(content).containsKey(Crawler.Attributes.DATE);
76+
}
77+
}
78+
6979
// covers bug #213
7080
List<ODocument> publishedPostsByTag = db.getPublishedPostsByTag("blog");
7181
Assert.assertEquals(2, publishedPostsByTag.size());

src/test/resources/content/blog/2016/draft-post.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
title=Draft Post
2-
date=2016-06-22
32
type=post
43
tags=blog
54
status=draft

0 commit comments

Comments
 (0)