Я создаю скин Maven (см. https://maven.apache.org/doxia/doxia-sitetools/doxia-site-renderer/).
Мой site.vm должен выделить ссылки в навигационной панели, если ссылка является текущим файлом
Поэтому мне нужно знать имя HTML-файла, который site.vm отображает.
$ currentFileName и $ alignFileName макросы прекрасно работают для обычных документов (например, из источника Markdown). Но для многостраничных документов, например, для создания плагина Maven Report, эти макросы продолжают возвращать имя главной страницы отчета,а не отображаемой страницы.
Как получить действительное имя отображаемого файла, а не только имя главной HTML-страницы плагина Maven Report?
Я попробовалследующие неудачные макросы:
$alignedFileName
$currentFileName
$docRenderingContext.getInputName()
$docRenderingContext.getOutputName()
Все они возвращают одно и то же значение, которое является именем файла HTML главной страницы Maven Re.Плагин порта.
KmReference.java (Плагин Maven Report, создание нескольких страниц с помощью getSinkFactory (). createSink (outputDirectory, pageFilename) ):
public class KmReference extends AbstractMavenReport {
public String getOutputName() {
return "km-reference";
}
…
@Override
protected void executeReport(Locale locale) throws MavenReportException {
…
// Create a new sink!
Sink kmSink;
try {
kmSink = getSinkFactory().createSink(outputDirectory, pageFilename);
} catch (IOException e) {
throw new MavenReportException("Could not create sink for " + pageFilename + " in " + outputDirectory.getAbsolutePath(), e);
}
site.vm (скорость):
alignedFileName = $alignedFileName
currentFileName = $currentFileName
getDoxiaSourcePath() = $docRenderingContext.getDoxiaSourcePath()
getGenerator() = $docRenderingContext.getGenerator()
getInputName() = $docRenderingContext.getInputName()
getOutputName() = $docRenderingContext.getOutputName()
getParserId() = $docRenderingContext.getParserId()
getRelativePath() = $docRenderingContext.getRelativePath()
Во всех HTML-файлах, сгенерированных моим плагином Maven Report, я получу точно такие же значения:
another-page.html (не km-reference.html):
alignedFileName = km-reference.html
currentFileName = km-reference.html
getDoxiaSourcePath() = $docRenderingContext.getDoxiaSourcePath()
getGenerator() = com.sentrysoftware.maven:patrolreport-maven-plugin:2.0:km-reference
getInputName() = km-reference.html
getOutputName() = km-reference.html
getParserId() = $docRenderingContext.getParserId()
getRelativePath() = .
Я ожидаю, что по крайней мере $ alignFileName вернет значение другой-page.html .