Update document appearance

Use Spring's standard styles for the ToC. Also added epub generation.
This commit is contained in:
Jay Bryant
2021-12-18 09:28:38 +00:00
committed by Janne Valkealahti
parent 7473c9ec5c
commit 012481ef63
4 changed files with 94 additions and 91 deletions

View File

@@ -16,7 +16,9 @@
<properties> <properties>
<asciidoctor.maven.plugin.version>2.1.0</asciidoctor.maven.plugin.version> <asciidoctor.maven.plugin.version>2.1.0</asciidoctor.maven.plugin.version>
<asciidoctorj.pdf.version>1.5.4</asciidoctorj.pdf.version> <asciidoctorj.pdf.version>1.5.4</asciidoctorj.pdf.version>
<asciidoctorj.epub.version>1.5.1</asciidoctorj.epub.version>
<asciidoctorj.version>2.5.1</asciidoctorj.version> <asciidoctorj.version>2.5.1</asciidoctorj.version>
<jruby.version>9.2.17.0</jruby.version>
<spring-doc-resources.version>0.2.5</spring-doc-resources.version> <spring-doc-resources.version>0.2.5</spring-doc-resources.version>
</properties> </properties>
@@ -101,6 +103,46 @@
<!-- ASCIIDOC --> <!-- ASCIIDOC -->
<plugin> <plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<executions>
<execution>
<id>unpack-doc-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>wget</goal>
</goals>
<configuration>
<url>https://repo.spring.io/release/io/spring/docresources/spring-doc-resources/${spring-doc-resources.version}/spring-doc-resources-${spring-doc-resources.version}.zip</url>
<unpack>true</unpack>
<outputDirectory>${project.build.directory}/refdocs/</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-asciidoc-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/refdocs/</outputDirectory>
<resources>
<resource>
<directory>src/main/asciidoc</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId> <groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId> <artifactId>asciidoctor-maven-plugin</artifactId>
<version>${asciidoctor.maven.plugin.version}</version> <version>${asciidoctor.maven.plugin.version}</version>
@@ -110,21 +152,29 @@
<artifactId>asciidoctorj-pdf</artifactId> <artifactId>asciidoctorj-pdf</artifactId>
<version>${asciidoctorj.pdf.version}</version> <version>${asciidoctorj.pdf.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctorj-epub3</artifactId>
<version>${asciidoctorj.epub.version}</version>
</dependency>
</dependencies> </dependencies>
<executions> <executions>
<execution> <execution>
<id>html</id> <id>generate-html</id>
<phase>generate-resources</phase> <phase>generate-resources</phase>
<inherited>false</inherited>
<goals> <goals>
<goal>process-asciidoc</goal> <goal>process-asciidoc</goal>
</goals> </goals>
<configuration> <configuration>
<backend>html5</backend> <backend>html5</backend>
<outputDirectory>${project.build.directory}/site/reference/html</outputDirectory>
<sourceHighlighter>highlight.js</sourceHighlighter> <sourceHighlighter>highlight.js</sourceHighlighter>
<attributes> <attributes>
// these attributes are required to use the doc resources <project-version>${project.version}</project-version>
<project-artifactId>${project.artifactId}</project-artifactId>
<toc>left</toc>
<toc-levels>4</toc-levels>
<sectanchors>true</sectanchors>
<sectnums />
<docinfo>shared</docinfo> <docinfo>shared</docinfo>
<stylesdir>css/</stylesdir> <stylesdir>css/</stylesdir>
<stylesheet>spring.css</stylesheet> <stylesheet>spring.css</stylesheet>
@@ -132,15 +182,13 @@
<icons>font</icons> <icons>font</icons>
<highlightjsdir>js/highlight</highlightjsdir> <highlightjsdir>js/highlight</highlightjsdir>
<highlightjs-theme>github</highlightjs-theme> <highlightjs-theme>github</highlightjs-theme>
<sectanchors>true</sectanchors>
</attributes> </attributes>
</configuration> </configuration>
</execution> </execution>
<execution> <execution>
<id>pdf</id> <id>generate-pdf</id>
<phase>generate-resources</phase> <phase>generate-resources</phase>
<inherited>false</inherited>
<goals> <goals>
<goal>process-asciidoc</goal> <goal>process-asciidoc</goal>
</goals> </goals>
@@ -148,6 +196,33 @@
<outputDirectory>${project.build.directory}/site/reference/pdf</outputDirectory> <outputDirectory>${project.build.directory}/site/reference/pdf</outputDirectory>
<backend>pdf</backend> <backend>pdf</backend>
<sourceHighlighter>coderay</sourceHighlighter> <sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<project-version>${project.version}</project-version>
<project-artifactId>${project.artifactId}</project-artifactId>
<icons>font</icons>
<pagenums />
<sectnums />
<toc />
</attributes>
</configuration>
</execution>
<execution>
<id>generate-epub</id>
<phase>generate-resources</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<backend>epub3</backend>
<sourceHighlighter>coderay</sourceHighlighter>
<attributes>
<project-version>${project.version}</project-version>
<project-artifactId>${project.artifactId}</project-artifactId>
<icons>font</icons>
<pagenums />
<sectnums />
<toc />
</attributes>
</configuration> </configuration>
</execution> </execution>
</executions> </executions>

View File

@@ -8,12 +8,14 @@
<includeBaseDirectory>false</includeBaseDirectory> <includeBaseDirectory>false</includeBaseDirectory>
<fileSets> <fileSets>
<fileSet> <fileSet>
<directory>${project.build.directory}/site/reference/html</directory> <directory>${project.build.directory}/generated-docs</directory>
<outputDirectory>site/reference/htmlsingle</outputDirectory> <outputDirectory>site/reference/htmlsingle</outputDirectory>
<includes> <includes>
<include>index.html</include>
<include>**/*</include> <include>**/*</include>
</includes> </includes>
<excludes>
<exclude>index.epub</exclude>
</excludes>
</fileSet> </fileSet>
<fileSet> <fileSet>
<directory>${project.build.directory}/site/reference/pdf</directory> <directory>${project.build.directory}/site/reference/pdf</directory>
@@ -22,6 +24,13 @@
<include>index.pdf</include> <include>index.pdf</include>
</includes> </includes>
</fileSet> </fileSet>
<fileSet>
<directory>${project.build.directory}/generated-docs</directory>
<outputDirectory>site/reference/epub</outputDirectory>
<includes>
<include>index.epub</include>
</includes>
</fileSet>
<fileSet> <fileSet>
<directory>${project.build.directory}/apidocs</directory> <directory>${project.build.directory}/apidocs</directory>
<outputDirectory>api</outputDirectory> <outputDirectory>api</outputDirectory>

View File

@@ -1,74 +0,0 @@
<!-- Generate a nice TOC -->
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.tocify/1.9.0/javascripts/jquery.tocify.min.js"></script>
<!-- We do not need the tocify CSS because the asciidoc CSS already provides most of what we neeed -->
<style>
.tocify-header {
font-style: italic;
}
.tocify-subheader {
font-style: normal;
}
.tocify ul {
margin: 0;
}
.tocify-focus {
color: #7a2518;
background-color: rgba(0, 0, 0, 0.1);
}
.tocify-focus > a {
color: #7a2518;
}
</style>
<script type="text/javascript">
$(function () {
// Add a new container for the tocify toc into the existing toc so we can re-use its
// styling
$("#toc").append("<div id='generated-toc'></div>");
$("#generated-toc").tocify({
extendPage: false,
context: "#content",
highlightOnScroll: false,
hideEffect: "slideUp",
// Use the IDs that asciidoc already provides so that TOC links and intra-document
// links are the same. Anything else might confuse users when they create bookmarks.
hashGenerator: function(text, element) {
return $(element).attr("id");
},
// Smooth scrolling doesn't work properly if we use the asciidoc IDs
smoothScroll: false,
// Set to 'none' to use the tocify classes
theme: "none",
// Handle book (may contain h1) and article (only h2 deeper)
selectors: $( "#content" ).has( "h1" ).size() > 0 ? "h1,h2,h3,h4,h5" : "h2,h3,h4,h5",
ignoreSelector: ".discrete"
});
// Switch between static asciidoc toc and dynamic tocify toc based on browser size
// This is set to match the media selectors in the asciidoc CSS
// Without this, we keep the dynamic toc even if it is moved from the side to preamble
// position which will cause odd scrolling behavior
var handleTocOnResize = function() {
if ($(document).width() < 768) {
$("#generated-toc").hide();
$(".sectlevel0").show();
$(".sectlevel1").show();
}
else {
$("#generated-toc").show();
$(".sectlevel0").hide();
$(".sectlevel1").hide();
}
}
$(window).resize(handleTocOnResize);
handleTocOnResize();
});
</script>

View File

@@ -8,14 +8,7 @@ Eric Bottard;
ifdef::backend-html5[] ifdef::backend-html5[]
*{projectVersion}* *{projectVersion}*
NOTE: This documentation is also available as https://docs.spring.io/spring-shell/docs/{projectVersion}/reference/pdf/index.pdf[PDF]. (C) 2017 - 2021 VMware, Inc.
endif::[]
ifdef::backend-pdf[]
NOTE: This documentation is also available as https://docs.spring.io/spring-shell/docs/{projectVersion}/reference/htmlsingle/index.html[HTML].
endif::[]
(C) 2017 - 2020 Pivotal Software, Inc.
_Copies of this document may be made for your own use and for distribution to _Copies of this document may be made for your own use and for distribution to
others, provided that you do not charge any fee for such copies and further others, provided that you do not charge any fee for such copies and further