Asciidoc是一种基于文本的文档格式,因此如果要将文档提交到版本控制系统中并跟踪不同版本之间的更改,它非常有用。 这使Asciidoc成为编写书籍,技术文档,常见问题解答或用户手册的理想工具。
创建Asciidoc文档后,很可能要发布该文档,而做到这一点的一种方法是将该文档发布到我们的网站上。 今天,我们将学习如何使用AsciidoctorJ将Asciidoc文档转换为HTML,以及如何使用Spring MVC渲染创建HTML。
我们的应用程序的要求是:
- 它必须支持从类路径中找到的Asciidoc文档。
- 它必须支持作为String对象给出的Asciidoc标记。
- 它必须将Asciidoc文档转换为HTML并呈现创建HTML。
- 它必须将创建HTML“嵌入”到我们的应用程序布局中。
让我们从获取Maven所需的依赖关系开始。
使用Maven获取所需的依赖关系
通过执行以下步骤,我们可以使用Maven获得所需的依赖关系:
- 启用Spring IO平台 。
- 配置所需的依赖项。
首先 ,我们可以通过将以下代码段添加到我们的POM文件中来启用Spring IO平台:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.spring.platform</groupId>
<artifactId>platform-bom</artifactId>
<version>1.0.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
其次 ,我们可以按照以下步骤配置所需的依赖项:
- 在pom.xml文件中配置日志记录依赖性。
- 将spring-webmvc依赖项添加到pom.xml文件。
- 将Servlet API依赖项添加到POM文件中。
- 在POM文件中配置Sitemesh(版本3.0.0)依赖性。 Sitemesh确保我们应用程序的每个页面使用一致的外观。
- 将asciidoctorj依赖性(版本1.5.0)添加到pom.xml文件。 AsciidoctorJ是Asciidoctor的Java API,我们使用它来将Asciidoc文档转换为HTML。
pom.xml文件的相关部分如下所示:
<dependencies>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</dependency>
<!-- Java EE -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<!-- Sitemesh -->
<dependency>
<groupId>org.sitemesh</groupId>
<artifactId>sitemesh</artifactId>
<version>3.0.0</version>
</dependency>
<!-- AsciidoctorJ -->
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj</artifactId>
<version>1.5.0</version>
</dependency>
</dependencies>
因为我们使用Spring IO Platform,所以不必指定Spring IO Platform中的工件的依赖版本。
让我们继续并开始实现我们的应用程序。
使用Spring MVC渲染Asciidoc文档
通过执行以下步骤,我们可以满足应用程序的要求:
- 配置我们的Web应用程序和Sitemesh过滤器。
- 实现视图类,这些视图类负责将Asciidoc文档转换为HTML并呈现创建HTML。
- 实现使用创建的视图类的控制器方法。
让我们开始吧。
配置Sitemesh
我们要做的第一件事是配置Sitemesh。 我们可以按照以下三个步骤配置Sitemesh:
- 在Web应用程序配置中配置Sitemesh过滤器。
- 创建用于为我们的应用程序创建一致外观的装饰器。
- 配置Sitemesh过滤器使用的装饰器。
首先 ,我们必须在Web应用程序配置中配置Sitemesh过滤器。 我们可以按照以下步骤配置Web应用程序:
- 创建一个实现WebApplicationInitializer接口的WebAppConfig类。
- 通过执行以下步骤来实现WebApplicationInitializer接口的onStartup()方法 :
- 创建一个AnnotationConfigWebApplicationContext对象并将其配置为处理我们的应用程序上下文配置类。
- 配置调度程序servlet 。
- 配置Sitemesh过滤器以处理应用程序的JSP页面和使用url模式'/ asciidoctor / *'的所有控制器方法返回HTML
- 将新的