You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Michael Osipov (JIRA)" <ji...@apache.org> on 2019/06/24 19:28:00 UTC
[jira] [Commented] (DOXIASITETOOLS-214) $currentFileName and
$alignedFileName are incorrect for Maven Report plugins that use several
Sink instances
[ https://issues.apache.org/jira/browse/DOXIASITETOOLS-214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16871723#comment-16871723 ]
Michael Osipov commented on DOXIASITETOOLS-214:
-----------------------------------------------
Do you think you can come up with an IT for that?
> $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
> Priority: Major
>
> 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)