/** * Creates new instance of Crawler. * * @param db Database instance for content * @param config Project configuration */ public Crawler(ContentStore db, JBakeConfiguration config) { this.db = db; this.config = config; this.parser = new Parser(config); }
/** * @param db Database instance for content * @param source Base directory where content directory is located * @param config Project configuration * @deprecated Use {@link #Crawler(ContentStore, JBakeConfiguration)} instead. * <p> * Creates new instance of Crawler. */ @Deprecated public Crawler(ContentStore db, File source, CompositeConfiguration config) { this.db = db; this.config = new JBakeConfigurationFactory().createDefaultJbakeConfiguration(source, config); this.parser = new Parser(this.config); }
@Test public void parseWithInvalidExtension() throws Exception { config.setMarkdownExtensions("HARDWRAPS,UNDEFINED_EXTENSION"); // Test with HARDWRAPS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileHardWraps); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>First line<br />\nSecond line</p>\n"); }
@Test public void parseValidMdFileHardWraps() throws Exception { config.setMarkdownExtensions("HARDWRAPS"); // Test with HARDWRAPS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileHardWraps); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>First line<br />\nSecond line</p>\n"); // Test without HARDWRAPS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileHardWraps); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>First line Second line</p>"); }
@Test public void parseValidMdFileQuotes() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("QUOTES"); // Test with QUOTES Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileQuotes); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>“quotes”</p>"); // Test without QUOTES config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileQuotes); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>"quotes"</p>"); }
@Test public void parseValidMdFileAbbreviations() throws Exception { config.setMarkdownExtensions("ABBREVIATIONS"); // Test with ABBREVIATIONS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileAbbreviations); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<p><abbr title=\"Hyper Text Markup Language\">HTML</abbr></p>" ); // Test without ABBREVIATIONS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileAbbreviations); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>*[HTML]: Hyper Text Markup Language HTML</p>"); }
@Test public void parseValidMdFileSmarts() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("SMARTS"); // Test with SMARTS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileSmarts); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>…</p>"); // Test without SMARTS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileSmarts); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>...</p>"); }
@Test public void parseValidMdFileSuppressInlineHTML() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("SUPPRESS_INLINE_HTML"); // Test with SUPPRESS_INLINE_HTML Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileSuppressInlineHTML); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>This is the first paragraph. with inline html</p>"); // Test without SUPPRESS_INLINE_HTML config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileSuppressInlineHTML); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>This is the first paragraph. <span> with </span> inline html</p>"); }
@Test public void parseValidMdFileSmartypants() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("SMARTYPANTS"); // Test with SMARTYPANTS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileSmartypants); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>“…”</p>"); // Test without SMARTYPANTS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileSmartypants); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>"..."</p>"); }
@Test public void parseValidMdFileAtxheaderspace() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("ATXHEADERSPACE"); // Test with ATXHEADERSPACE Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileAtxheaderspace); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>#Test</p>"); // Test without ATXHEADERSPACE config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileAtxheaderspace); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<h1>Test</h1>"); }
@Test public void parseValidMdFileFencedCodeBlocks() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("FENCED_CODE_BLOCKS"); // Test with FENCED_CODE_BLOCKS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileFencedCodeBlocks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<pre><code>function test() {\n console.log("!");\n}\n</code></pre>" ); // Test without FENCED_CODE_BLOCKS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileFencedCodeBlocks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<p><code>function test() { console.log("!"); }</code></p>" ); }
@Test public void parseValidAsciiDocFileWithoutJBakeMetaDataUsingDefaultTypeAndStatus() { config.setDefaultStatus("published"); config.setDefaultType("page"); Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(validAsciiDocFileWithoutJBakeMetaData); Assert.assertNotNull(map); Assert.assertEquals("published", map.get("status")); Assert.assertEquals("page", map.get("type")); assertThat(map.get("body").toString()) .contains("<p>JBake now supports AsciiDoc documents without JBake meta data.</p>"); }
@Test public void parseValidMdFileSuppressAllHTML() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("SUPPRESS_ALL_HTML"); // Test with SUPPRESS_ALL_HTML Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileSuppressAllHTML); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains(""); // Test without SUPPRESS_ALL_HTML config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileSuppressAllHTML); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<div>!</div><em>!</em>"); }
@Test public void parseValidMdFileSuppressHTMLBlocks() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("SUPPRESS_HTML_BLOCKS"); // Test with SUPPRESS_HTML_BLOCKS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileSuppressHTMLBlocks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains(""); // Test without SUPPRESS_HTML_BLOCKS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileSuppressHTMLBlocks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<div>!</div><em>!</em>"); }
@Test public void parseValidMdFileAutolinks() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("AUTOLINKS"); // Test with AUTOLINKS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileAutolinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<p><a href=\"http://github.com\">http://github.com</a></p>" ); // Test without AUTOLINKS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileAutolinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>http://github.com</p>"); }
@Test public void parseValidMdFileExtanchorlinks() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("EXTANCHORLINKS"); // Test with EXTANCHORLINKS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdExtanchorlinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<h1><a href=\"#header-some-formatting-chars\" id=\"header-some-formatting-chars\"></a>header & some <em>formatting</em> ~~chars~~</h1>" ); // Test without EXTANCHORLINKS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdExtanchorlinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<h1>header & some <em>formatting</em> ~~chars~~</h1>"); }
@Test public void parseValidMdFileDefinitions() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("DEFINITIONS"); // Test with DEFINITIONS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileDefinitions); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<dl>\n<dt>Apple</dt>\n<dd>Pomaceous fruit</dd>\n</dl>" ); // Test without DEFNITIONS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileDefinitions); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>Apple : Pomaceous fruit</p>"); }
@Test public void parseValidMdFileWikilinks() throws Exception { config.setMarkdownExtensions(""); config.setMarkdownExtensions("WIKILINKS"); // Test with WIKILINKS Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(mdFileWikilinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains( "<p><a href=\"Wiki-style-links\">Wiki-style links</a></p>" ); // Test without WIKILINKS config.setMarkdownExtensions(""); parser = new Parser(config); map = parser.processFile(mdFileWikilinks); Assert.assertNotNull(map); assertThat(map.get("body").toString()).contains("<p>[[Wiki-style links]]</p>"); }
@Test public void parseValidMarkdownFileBasic() throws Exception { Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(validMdFileBasic); Assert.assertNotNull(map); Assert.assertEquals("draft", map.get("status")); Assert.assertEquals("post", map.get("type")); Assert.assertEquals("<h1>This is a test</h1>\n", map.get("body")); }
@Test public void parseInvalidMarkdownFileBasic() { Parser parser = new Parser(config); Map<String, Object> map = parser.processFile(invalidMdFileBasic); Assert.assertNull(map); }