-
Notifications
You must be signed in to change notification settings - Fork 124
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
baseDir should be set when Asciidoctor is invoked from the Maven Site plugin #180
Comments
Also, if you are trying to use maven-site with Asciidoc, but also to build a PDF payload, the include:: syntax for making the HTML works breaks the PDF. |
Technically, there is a way to work around this problem, but I'm only mentioning it for completeness, not because it's elegant. You can simple define an attribute as the root of the includes in the document header per backend.
Again, we really don't want to have to resort to this, but in the meantime it might help to get you by. |
Btw, we should have an attribute set in the Maven Site configuration that indicates that we're in the maven site environment. That would make conditionals like this more clear. Something like |
…or#168 & asciidoctor#160 enable configuratino for site parser - rewrite Maven Site parser to make more organized and extensible - pass AsciiDoc configuration in Maven Site plugin to Asciidoctor API - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis - remove unused legacy site module
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite Maven Site parser to make more organized and extensible - pass AsciiDoc configuration in Maven Site plugin to Asciidoctor API - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis - remove unused legacy site module
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI - remove unused legacy site module - fix license headers - minor cleanups
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI - remove unused legacy site module - fix license headers - minor cleanups
Once I figured out how to inject the MavenProject into the class, I was able to access the basedir of the project and from there the path to the AsciiDoc files in the site. The basedir will be set to the following path by default:
This value can be configured using a configuration property under the site configuration. <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.3</version> <!-- 3.4 also works -->
<configuration>
<asciidoc>
<baseDir>${project.basedir}</baseDir>
</asciidoc>
</configuration>
<dependencies>
<dependency>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>1.5.3</version>
</dependency>
</dependencies>
</plugin> |
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - specify baseDir by default when invoking Asciidoctor API - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - API options (e.g., templateDir) - Ruby options (e.g., requires) - AsciiDoc attributes (e.g., icons=font) - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI - remove unused legacy site module - fix license headers - minor cleanups
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - specify baseDir by default when invoking Asciidoctor API - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - API options (e.g., templateDir) - Ruby options (e.g., requires) - AsciiDoc attributes (e.g., icons=font) - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI and Appveyor - remove unused legacy site module - fix license headers - minor cleanups
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - specify baseDir by default when invoking Asciidoctor API - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - API options (e.g., templateDir) - Ruby options (e.g., requires) - AsciiDoc attributes (e.g., icons=font) - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI and Appveyor - remove unused legacy site module - fix license headers - minor cleanups
…or#168 & asciidoctor#160 enable configuration for site parser - rewrite AsciidoctorParser (used by Maven Site Plugin) to make it more organized and extensible - specify baseDir by default when invoking Asciidoctor API - pass AsciiDoc configuration defined in Maven Site plugin to the Asciidoctor API - API options (e.g., templateDir) - Ruby options (e.g., requires) - AsciiDoc attributes (e.g., icons=font) - enhance Maven Site integration test - add custom template - add include - add source highlighting - make validation code compatible with Java 6 - enable integration tests on Travis CI and Appveyor - remove unused legacy site module - fix license headers - minor cleanups
The baseDir option should be set when Asciidoctor is invoked from the Maven Site plugin. Currently, the baseDir is defaulting to the root of the project. This means that top-level includes have to be specified using a relative path from the project root instead of relative to the main file.
The behavior that needs to be emulated is specified here: https://github.com/asciidoctor/asciidoctor-maven-plugin/blob/master/src/main/java/org/asciidoctor/maven/AsciidoctorMojo.java#L213-L222
There's currently no way to provide options to the Maven Site plugin, so it should use the fallback behavior.
The text was updated successfully, but these errors were encountered: