@Test public void ruby_block_macro_processor_should_be_registered_with_block_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/gist-block-macro.rb")).rubyBlockMacro("mygist", "GistBlockMacro") .register(); String content = asciidoctor.convert( ".My Gist\n" + "mygist::123456[]", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByTag("script"); assertThat(elements.size(), is(1)); assertThat(elements.get(0).attr("src"), is("https://gist.github.com/123456.js")); }
@Test public void ruby_inline_macro_processor_should_be_registered_with_macro_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/man-inline-macro.rb")).rubyInlineMacro("myman", "ManInlineMacro") .register(); String content = asciidoctor.convert( "= Man Inline Macro Extension\n" + "\n" + "See myman:gittutorial[7] to get started.", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByTag("a"); assertThat(elements.size(), is(1)); assertThat(elements.get(0).attr("href"), is("gittutorial.html")); }
@Test public void ruby_block_macro_processor_should_be_registered_with_implicit_block_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/gist-block-macro.rb")).rubyBlockMacro("GistBlockMacro") .register(); String content = asciidoctor.convert( ".My Gist\n" + "gist::42[]", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByTag("script"); assertThat(elements.size(), is(1)); assertThat(elements.get(0).attr("src"), is("https://gist.github.com/42.js")); }
@Test public void ruby_inline_macro_processor_should_be_registered_with_implicit_macro_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/man-inline-macro.rb")).rubyInlineMacro("ManInlineMacro") .register(); String content = asciidoctor.convert( "= Man Inline Macro Extension\n" + "\n" + "See man:dockertutorial[7] to get started.", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByTag("a"); assertThat(elements.size(), is(1)); assertThat(elements.get(0).attr("href"), is("dockertutorial.html")); }
@Test public void ruby_extension_should_be_registered_with_implicit_block_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/YellRubyBlock.rb")).rubyBlock("YellRubyBlock") .register(); String content = asciidoctor.convert( "= Block Yell Example\n" + "\n" + "content\n" + "\n" + "[yell]\n" + "The time is now. Get a move on.", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByClass("paragraph"); assertThat(elements.size(), is(2)); assertThat(elements.get(1).text(), is("THE TIME IS NOW! GET A MOVE ON!")); }
@Test public void ruby_extension_should_be_registered_with_explicit_block_name() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/YellRubyBlock.rb")).rubyBlock("rubyyell", "YellRubyBlock") .register(); String content = asciidoctor.convert( "= Block Yell Example\n" + "\n" + "content\n" + "\n" + "[rubyyell]\n" + "The time is now. Get a move on.", options().toFile(false).get()); Document doc = Jsoup.parse(content, "UTF-8"); Elements elements = doc.getElementsByClass("paragraph"); assertThat(elements.size(), is(2)); assertThat(elements.get(1).text(), is("THE TIME IS NOW! GET A MOVE ON!")); }
@Test public void ruby_treeprocessor_should_be_registered() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/shell-session-tree-processor.rb")) .rubyTreeprocessor("ShellSessionTreeProcessor") .register(); String content = this.asciidoctor.convert( " $ echo \"Hello, World!\"\n" + " > Hello, World!\n" + "\n" + " $ gem install asciidoctor", options().toFile(false).get()); final Document document = Jsoup.parse(content); final TextNode commandElement = document.getElementsByClass("command").get(0).textNodes().get(0); assertThat(commandElement.getWholeText(), is("echo \"Hello, World!\"")); final TextNode commandElement2 = document.getElementsByClass("command").get(1).textNodes().get(0); assertThat(commandElement2.getWholeText(), is("gem install asciidoctor")); }
@Test public void ruby_includeprocessor_should_be_registered() { asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/response-include-processor.rb")) .rubyIncludeProcessor("ResponseIncludeProcessor") .register(); String content = asciidoctor.convert( "The response to everything is\n" + "\n" + "include::response[]" + "", options().toFile(false).safe(SafeMode.SAFE).get()); final Document document = Jsoup.parse(content); assertThat( document.getElementsByClass("paragraph").get(1).getElementsByTag("p").get(0).toString(), is("<p>42</p>")); }
@Test public void ruby_preprocessor_should_be_registered() { this.asciidoctor.createGroup() .loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/front-matter-preprocessor.rb")) .rubyPreprocessor("FrontMatterPreprocessor") .register(); String content = this.asciidoctor.convert( "---\n" + "tags: [announcement, website]\n" + "---\n" + "= Document Title\n" + "\n" + "content\n" + "\n" + "[subs=\"attributes,specialcharacters\"]\n" + ".Captured front matter\n" + "....\n" + "---\n" + "{front-matter}\n" + "---\n" + "....", options().toFile(false).get()); final Document document = Jsoup.parse(content); final Element contentElement = document.getElementsByClass("content").get(0); final Element literalElement = contentElement.getElementsByTag("pre").get(0); assertThat(literalElement.toString().replace("\r", ""), containsString("---\n" + "tags: [announcement, website]\n" + "---")); }
.loadRubyClass(getClass().getResourceAsStream("/ruby-extensions/YellRubyBlock.rb")) .rubyBlock("rubyyell", "YellRubyBlock");