5

I'm using a CMS to publish my blog articles. I'm looking for a way to create HTML articles offline from a simple text file. This is a piece of HTML which I normally use for my articles:

<p> We want to show how you can gather information such as the author name:</p>
<pre class="brush:java">package com.sample;

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.main.Main;


public class XMLCamel {

    public static void main(String[] args) throws Exception {
        Main main = new Main();

    }
}

class Sample  extends RouteBuilder {

    @Override
    public void config() throws Exception {

        from("file:/usr/data/files?noop=true")
            .split(xpath("//catalog/book/author/text()")).to("stream:out"); 

    }
}</pre>
<p>The above route will print the author names according to the <strong>XPath</strong> query: //catalog/book/author/text()</p>
<p>The authors will be sent to the Stream.out so you will see them on the console once you run the code.</p>
<p><strong>Result:</strong></p>
<p><strong>John Smith Sally Joy</strong></p>

As you can see I use some customizations to wrap code (pre class etc.). Is it something which can be easily done with Asciidoctor ? I'm new to Asciidoctor and just wonder if it's worth investing time in learning it for this purpose.
Thanks!

user2824073
  • 2,407
  • 10
  • 39
  • 73
  • Related: [How to create custom HTML output for an existing Asciidoctor Asciidoc macro?](https://stackoverflow.com/questions/63917971/how-to-create-custom-html-output-for-an-existing-asciidoctor-asciidoc-macro). – Ciro Santilli OurBigBook.com Sep 16 '20 at 10:22

2 Answers2

2

To answer the question, yes it's possible. However, for something trivial like this the output from asciidoctor ootb along with the highlighter of choice may work fine for what you're doing.

Should you need to customize things you'll need to creat a custom backend. As the docs for creating a custom backend haven't been finished yet this mailing list post should help.

LightGuard
  • 5,298
  • 19
  • 19
2

In addition to LightGuard's advanced answer it's worth mentioning that you can use ++++ to add custom HTML to the output.

++++<h1>hello</h1>++++

will simply generate

<h1>hello</h1>
Daniel Darabos
  • 26,991
  • 10
  • 102
  • 114