Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thank you for opening a pull request and contributing to AsciidoctorJ!
Please take a bit of time giving some details about your pull request:
Kind of change
Description
What is the goal of this pull request?
As discovered in #1241 the AsciidoctorJ CLI works significantly different compared to Asciidoctor itself.
For example source file names are currently passed with their absolute path by AsciidoctorJ CLI to the Asciidoctor Ruby runtime, while the Asciidoctor Ruby CLI passes relative file names.
Also, AsciidoctorJ currently changes the current working directory to the baseDir atm, while Asciidoctor Ruby does not.
This PR tries to align the behavior of AsciidoctorJ with the behavior of Asciidoctor Ruby.
How does it achieve that?
I changed the AsciidoctorJ code to mimic the same behavior as Asciidoctor Ruby as much as possible.
Are there any alternative ways to implement this?
Yes, we could try to reuse the implementation of Asciidoctor::Cli itself.
We would likely need to create a subclass of Asciidoctor::Cli::Invoker where we pass our custom options, instead of the ones parsed in Asciidoctor::Cli::Options.
Are there any implications of this pull request? Anything a user must know?
The PR is pretty risky, I have made some tests, but I am not very confident that I was able to test all the different use cases.
Would be great to get some feedback.
Issue
If this PR fixes an open issue, please add a line of the form:
Fixes #Issue
Release notes
Please add a corresponding entry to the file CHANGELOG.adoc