From 66fffe032f2fda4851e83c55385199feeeee31be Mon Sep 17 00:00:00 2001 From: Alexander Kriegisch Date: Fri, 5 Jan 2024 11:28:07 +0700 Subject: [PATCH] Asciidoc: Create PDFs from multi-page guides Using Asciidoctor Maven, we now produce PDFs (which are also linked to from the main documentation index page) for - Programming Guide, - AspectJ 5 Developer's Notebook, - Development Environment Guide, - Problem Diagnosis Guide, - AspectJ Design Overview. Attention! PDF generation alone takes 3+ minutes, almost 4 minutes including asciidoc to HTML conversion. Just deactivate the 'create-docs' profile if you do not need docs during the build. Closes #272. Signed-off-by: Alexander Kriegisch --- docs/index.adoc | 35 +++++++++---- docs/pom.xml | 129 ++++++++++++++++++++++++++++++++++++++++++++++-- pom.xml | 7 ++- 3 files changed, 155 insertions(+), 16 deletions(-) diff --git a/docs/index.adoc b/docs/index.adoc index 0b7447038..21ffd5136 100644 --- a/docs/index.adoc +++ b/docs/index.adoc @@ -40,13 +40,19 @@ mailto:aspectj-users@eclipse.org[users] and mailto:aspectj-dev@eclipse.org[devel |xref:quickref/quick.pdf[AspectJ Quick Reference] |Two-page quick reference for the AspectJ language -|xref:adk15notebook/index.adoc[AspectJ 5 Developer's Notebook] + -(xref:adk15notebook/adk15notebook.adoc[single page]) +a|AspectJ 5 Developer's Notebook + +* xref:adk15notebook/index.adoc[HTML multi-page] +* xref:adk15notebook/adk15notebook.adoc[HTML single page] +* xref:adk15notebook/adk15notebook.pdf[PDF] |Describes the changes to the AspectJ language and tools introduced in the AspectJ 5 Development Kit. These changes are additive, and are not yet reflected in the programming guide or quick reference. -|xref:progguide/index.adoc[Programming Guide] + -(xref:progguide/progguide.adoc[single page]) +a|Programming Guide + +* xref:progguide/index.adoc[HTML multi-page] +* xref:progguide/progguide.adoc[HTML single page] +* xref:progguide/progguide.pdf[PDF] |Introduces AOP and the AspectJ language. xref:progguide/gettingstarted.adoc[Getting Started] describes basic semantics and shows development- and production-time applications. xref:progguide/language.adoc[The AspectJ Language] describes join points, pointcuts, advice, and introduction, all features new to AOP. xref:progguide/examples.adoc[Examples] walks @@ -57,13 +63,19 @@ syntax, the xref:progguide/semantics.adoc[Language Semantics] best describes Asp xref:progguide/implementation.adoc[Implementation Notes] describes how the current version is limited to code the compiler controls. -|xref:devguide/index.adoc[Development Environment Guide] + -(xref:devguide/devguide.adoc[single page]) +a|Development Environment Guide + +* xref:devguide/index.adoc[HTML multi-page] +* xref:devguide/devguide.adoc[HTML single page] +* xref:devguide/devguide.pdf[PDF] |Guide to the command-line compiler xref:devguide/ajc.adoc[ajc] and the xref:devguide/antsupport.adoc[Ant tasks] for building AspectJ programs -|xref:pdguide/index.adoc[Problem Diagnosis Guide] + -(xref:pdguide/pdguide.adoc[single page]) +a|Problem Diagnosis Guide + +* xref:pdguide/index.adoc[HTML multi-page] +* xref:pdguide/pdguide.adoc[HTML single page] +* xref:pdguide/pdguide.pdf[PDF] |Guide to various debugging features available, such as messages and trace to help you both solve problems with you own programs and report bugs to the AspectJ team @@ -117,8 +129,11 @@ xref:release/README-1.2.adoc[1.2], xref:release/README-1.1.adoc[1.1]. |AspectJ code to demonstrate some language features and implement JavaBean properties, the Observer pattern, a tracing library, and a game application where aspects handle display updating -| xref:developer/index.adoc[AspectJ Design Overview] + -(xref:developer/design-overview.adoc[single page]) +a|AspectJ Design Overview + +* xref:developer/index.adoc[HTML multi-page] +* xref:developer/design-overview.adoc[HTML single page] +* xref:developer/design-overview.pdf[PDF] |Introductory information about AspectJ language design, developer guides, module structure |=== diff --git a/docs/pom.xml b/docs/pom.xml index e6c256dd9..cb6aa61c3 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -25,18 +25,137 @@ org.asciidoctor asciidoctor-maven-plugin + + ${project.basedir} + true + true + + + + ${project.basedir} + + + **/*.doc + **/*.vsd + + *.iml + pom.xml* + build.xml + docs.build.properties + + developer/*.txt + developer/ajdt/** + developer/ram-disk/** + developer/traces/** + install/** + sandbox/** + src/** + target/** + teaching/** + test/** + + + + - create-asciidoc + create-html-from-asciidoc generate-resources process-asciidoc + + + generate-pdf-adk15notebook + generate-resources + + process-asciidoc + + + pdf + adk15notebook/adk15notebook.adoc + false + + + + generate-pdf-devguide + generate-resources + + process-asciidoc + + + pdf + devguide/devguide.adoc + false + + + + generate-pdf-pdguide + generate-resources + + process-asciidoc + + + pdf + pdguide/pdguide.adoc + false + + + + generate-pdf-progguide + generate-resources + + process-asciidoc + + + pdf + progguide/progguide.adoc + false + + + + generate-pdf-design-overview + generate-resources + + process-asciidoc + + + pdf + developer/design-overview.adoc + false + + + + + + org.apache.maven.plugins + maven-resources-plugin + + + copy-docs-to-dist + package + + copy-resources + - ${project.basedir} - ${project.build.directory}/html - true - true + ${project.basedir}/../aj-build/dist/docs/doc + + + ${project.build.directory}/generated-docs + + + + readme-docs-module.html + + developer/ajdt/** + developer/traces/** + install/** + sandbox/** + teaching/** + test/** + + + diff --git a/pom.xml b/pom.xml index 99c73736f..d62e3b9bf 100644 --- a/pom.xml +++ b/pom.xml @@ -429,8 +429,13 @@ font - + + org.asciidoctor + asciidoctorj-pdf + 2.3.10 + + org.jruby jruby -- 2.39.5