You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Bertrand Martin (JIRA)" <ji...@apache.org> on 2019/06/24 18:31:00 UTC

[jira] [Created] (DOXIASITETOOLS-214) $currentFileName and $alignedFileName are incorrect for Maven Report plugins that use several Sink instances

Bertrand Martin created DOXIASITETOOLS-214:
----------------------------------------------

             Summary: $currentFileName and $alignedFileName are incorrect for Maven Report plugins that use several Sink instances
                 Key: DOXIASITETOOLS-214
                 URL: https://issues.apache.org/jira/browse/DOXIASITETOOLS-214
             Project: Maven Doxia Sitetools
          Issue Type: Bug
          Components: Site renderer
            Reporter: Bertrand Martin


h1. Problem

The _$currentFileName_ and _$alignedFileName_ macros work just fine for regular documents (from Markdown source, for example). But for multi-pages documents, like a Maven Report plugin would generate, these macros keep returning the name of main page of the report, rather than the page being rendered.

h2. KmReference.java

Maven Report plugin that use several instances of _Sink_
 
{code:java}
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);
            }
{code}

h2. site.vm

{code}
alignedFileName = $alignedFileName

currentFileName = $currentFileName

getDoxiaSourcePath() = $docRenderingContext.getDoxiaSourcePath()

getGenerator() = $docRenderingContext.getGenerator()

getInputName() = $docRenderingContext.getInputName()

getOutputName() = $docRenderingContext.getOutputName()

getParserId() = $docRenderingContext.getParserId()

getRelativePath() = $docRenderingContext.getRelativePath()
{code}

h2. Resulting another-page.html

This file is *not* km_reference.html, and stil:

{code}
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() = .
{code}

h1. Specification

Modify the _DefaultSiteRenderer.createDocumentVelocityContext()_ method to expose the actual name of the file being rendered.

Suggestion:
Property name: *renderedFileName*
Property value: {{File( siteContext.getProcessedContentOutput(), docRenderingContext.getInputName().substring( 0, input.length() - 3 ) )}}





--
This message was sent by Atlassian JIRA
(v7.6.3#76005)