You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2017/12/10 09:25:37 UTC

[maven-doxia-sitetools] branch master updated: [DOXIASITETOOLS-181] added docRenderingContext to template Velocity ctx

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git


The following commit(s) were added to refs/heads/master by this push:
     new 96b97ef  [DOXIASITETOOLS-181] added docRenderingContext to template Velocity ctx
96b97ef is described below

commit 96b97ef2e2f440d1f579ca9f676e66c10f2d1a7b
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Dec 10 10:25:36 2017 +0100

    [DOXIASITETOOLS-181] added docRenderingContext to template Velocity ctx
---
 .../doxia/siterenderer/DefaultSiteRenderer.java    | 21 ++++++-----
 .../maven/doxia/siterenderer/DocumentRenderer.java |  4 +--
 .../doxia/siterenderer/DoxiaDocumentRenderer.java  |  4 +--
 .../apache/maven/doxia/siterenderer/Renderer.java  |  9 ++---
 .../doxia/siterenderer/sink/SiteRendererSink.java  |  4 +--
 .../doxia/siterenderer/resources/default-site.vm   |  2 +-
 doxia-site-renderer/src/site/apt/index.apt.vm      |  6 ++--
 .../siterenderer/velocity-toolmanager.expected.txt | 41 +++++++++++-----------
 8 files changed, 49 insertions(+), 42 deletions(-)

diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
index 89e681d..25f73d1 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
@@ -352,29 +352,29 @@ public class DefaultSiteRenderer
     }
 
     /** {@inheritDoc} */
-    public void renderDocument( Writer writer, RenderingContext renderingContext, SiteRenderingContext siteContext )
+    public void renderDocument( Writer writer, RenderingContext docRenderingContext, SiteRenderingContext siteContext )
             throws RendererException, FileNotFoundException, UnsupportedEncodingException
     {
-        SiteRendererSink sink = new SiteRendererSink( renderingContext );
+        SiteRendererSink sink = new SiteRendererSink( docRenderingContext );
 
-        File doc = new File( renderingContext.getBasedir(), renderingContext.getInputName() );
+        File doc = new File( docRenderingContext.getBasedir(), docRenderingContext.getInputName() );
 
         Reader reader = null;
         try
         {
             String resource = doc.getAbsolutePath();
 
-            Parser parser = doxia.getParser( renderingContext.getParserId() );
+            Parser parser = doxia.getParser( docRenderingContext.getParserId() );
             // DOXIASITETOOLS-146 don't render comments from source markup
             parser.setEmitComments( false );
 
             // TODO: DOXIA-111: the filter used here must be checked generally.
-            if ( renderingContext.getAttribute( "velocity" ) != null )
+            if ( docRenderingContext.getAttribute( "velocity" ) != null )
             {
-                getLogger().debug( "Processing Velocity for " + renderingContext.getInputName() );
+                getLogger().debug( "Processing Velocity for " + docRenderingContext.getInputName() );
                 try
                 {
-                    Context vc = createDocumentVelocityContext( renderingContext, siteContext );
+                    Context vc = createDocumentVelocityContext( docRenderingContext, siteContext );
 
                     StringWriter sw = new StringWriter();
 
@@ -390,7 +390,7 @@ public class DefaultSiteRenderer
                             siteContext.getProcessedContentOutput().mkdirs();
                         }
 
-                        String input = renderingContext.getInputName();
+                        String input = docRenderingContext.getInputName();
                         File outputFile = new File( siteContext.getProcessedContentOutput(),
                                                     input.substring( 0, input.length() - 3 ) );
 
@@ -446,7 +446,7 @@ public class DefaultSiteRenderer
             {
                 throw new RendererException( "Error getting a parser for '" + doc + "'" );
             }
-            doxia.parse( reader, renderingContext.getParserId(), sink );
+            doxia.parse( reader, docRenderingContext.getParserId(), sink );
         }
         catch ( ParserNotFoundException e )
         {
@@ -672,6 +672,9 @@ public class DefaultSiteRenderer
             }
         }
 
+        // document rendering context, to get eventual inputName
+        context.put( "docRenderingContext", siteRendererSink.getRenderingContext() );
+
         return context;
     }
 
diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java
index aada985..93fb318 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DocumentRenderer.java
@@ -35,13 +35,13 @@ public interface DocumentRenderer
      * Render a document.
      *
      * @param writer the Writer.
-     * @param renderer the Renderer.
+     * @param siteRenderer the site Renderer.
      * @param siteRenderingContext the SiteRenderingContext.
      * @throws org.apache.maven.doxia.siterenderer.RendererException if it bombs.
      * @throws java.io.FileNotFoundException if it bombs.
      * @throws java.io.UnsupportedEncodingException if it bombs.
      */
-    void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext )
+    void renderDocument( Writer writer, Renderer siteRenderer, SiteRenderingContext siteRenderingContext )
         throws RendererException, FileNotFoundException, UnsupportedEncodingException;
 
     /**
diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java
index 2a9275f..188c42e 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DoxiaDocumentRenderer.java
@@ -47,10 +47,10 @@ public class DoxiaDocumentRenderer
     }
 
     /** {@inheritDoc} */
-    public void renderDocument( Writer writer, Renderer renderer, SiteRenderingContext siteRenderingContext )
+    public void renderDocument( Writer writer, Renderer siteRenderer, SiteRenderingContext siteRenderingContext )
         throws RendererException, FileNotFoundException, UnsupportedEncodingException
     {
-        renderer.renderDocument( writer, renderingContext, siteRenderingContext );
+        siteRenderer.renderDocument( writer, renderingContext, siteRenderingContext );
     }
 
     /** {@inheritDoc} */
diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java
index c155221..9607209 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/Renderer.java
@@ -61,10 +61,11 @@ public interface Renderer
         throws RendererException, IOException;
 
     /**
-     * Generate a document output from a Doxia SiteRenderer Sink.
+     * Generate a document output from a Doxia SiteRenderer Sink, i.e. merge the document content into
+     * the site template.
      *
      * @param writer the Writer to use.
-     * @param sink the Site Renderer Sink to receive the Doxia events.
+     * @param sink the Site Renderer Sink that received the Doxia events during document content rendering.
      * @param siteRenderingContext the SiteRenderingContext to use.
      * @throws RendererException if it bombs.
      */
@@ -146,12 +147,12 @@ public interface Renderer
      * {@link DoxiaDocumentRenderer}.
      *
      * @param writer the writer to render the document to.
-     * @param renderingContext the document's rendering context, which is expected to have a non-null parser id.
+     * @param docRenderingContext the document's rendering context, which is expected to have a non-null parser id.
      * @param siteContext the site's rendering context
      * @throws RendererException if it bombs.
      * @throws FileNotFoundException if it bombs.
      * @throws UnsupportedEncodingException if it bombs.
      */
-    void renderDocument( Writer writer, RenderingContext renderingContext, SiteRenderingContext siteContext )
+    void renderDocument( Writer writer, RenderingContext docRenderingContext, SiteRenderingContext siteContext )
         throws RendererException, FileNotFoundException, UnsupportedEncodingException;
 }
diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
index 91abd88..d47d3d8 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
@@ -316,9 +316,9 @@ public class SiteRendererSink
     }
 
     /**
-     * <p>Getter for the field <code>renderingContext</code>.</p>
+     * <p>Getter for the field <code>renderingContext</code> containing the document rendering context.</p>
      *
-     * @return the current rendering context
+     * @return the current document rendering context
      * @since 1.1
      */
     public RenderingContext getRenderingContext()
diff --git a/doxia-site-renderer/src/main/resources/org/apache/maven/doxia/siterenderer/resources/default-site.vm b/doxia-site-renderer/src/main/resources/org/apache/maven/doxia/siterenderer/resources/default-site.vm
index 54dd703..d701afd 100644
--- a/doxia-site-renderer/src/main/resources/org/apache/maven/doxia/siterenderer/resources/default-site.vm
+++ b/doxia-site-renderer/src/main/resources/org/apache/maven/doxia/siterenderer/resources/default-site.vm
@@ -17,7 +17,7 @@
 ## under the License.
 ##
 #parse( "default-site-macros.vm" )
-<!-- Generated by Apache Maven Doxia Site Renderer#if( $doxiaSiteRendererVersion ) $doxiaSiteRendererVersion#end at $dateFormat.format( $currentDate ) -->
+<!-- Generated by Apache Maven Doxia Site Renderer#if( $doxiaSiteRendererVersion ) $doxiaSiteRendererVersion#end#if( $docRenderingContext.inputName ) from $docRenderingContext.basedir.name/$docRenderingContext.inputName#end at $dateFormat.format( $currentDate ) -->
 <html xmlns="http://www.w3.org/1999/xhtml"#if ( $locale ) xml:lang="$locale.language" lang="$locale.language"#end>
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
diff --git a/doxia-site-renderer/src/site/apt/index.apt.vm b/doxia-site-renderer/src/site/apt/index.apt.vm
index fd1638f..728ce16 100644
--- a/doxia-site-renderer/src/site/apt/index.apt.vm
+++ b/doxia-site-renderer/src/site/apt/index.apt.vm
@@ -140,7 +140,7 @@ Doxia Sitetools - Site Renderer
   If you intend to use custom Velocity tools, add them to the Maven Site Plugin's dependency list and make sure
   that they have a bundled configuration file in <<</META-INF/maven/site-tools.xml>>>.
 
-  See <<<{{{./xref/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.html\#L470}DefaultSiteRenderer.createToolManagedVelocityContext(...)}}>>>
+  See <<<{{{./xref/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.html\#L476}DefaultSiteRenderer.createToolManagedVelocityContext(...)}}>>>
   source for more details and the {{{http://velocity.apache.org/tools/devel/summary.html}tools usage summary}}.
 
 ** Maven Site Plugin
@@ -186,6 +186,8 @@ Doxia Sitetools - Site Renderer
 *---------------------------------+----------------------+-------------------------------+
 | <<<title>>>                     | <<<String>>>         | The title of the document, including the project or site name. |
 *---------------------------------+----------------------+-------------------------------+
+| <<<docRenderingContext>>>       | {{{./apidocs/org/apache/maven/doxia/siterenderer/RenderingContext.html}<<<RenderingContext>>>}} | (since 1.8) The document rendering context. |
+*---------------------------------+----------------------+-------------------------------+
 
-  See <<<{{{./xref/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.html\#L592}DefaultSiteRenderer.createSiteTemplateVelocityContext(...)}}>>>
+  See <<<{{{./xref/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.html\#L604}DefaultSiteRenderer.createSiteTemplateVelocityContext(...)}}>>>
   source for more details.
diff --git a/doxia-site-renderer/src/test/resources/org/apache/maven/doxia/siterenderer/velocity-toolmanager.expected.txt b/doxia-site-renderer/src/test/resources/org/apache/maven/doxia/siterenderer/velocity-toolmanager.expected.txt
index e747b65..eb6fed9 100644
--- a/doxia-site-renderer/src/test/resources/org/apache/maven/doxia/siterenderer/velocity-toolmanager.expected.txt
+++ b/doxia-site-renderer/src/test/resources/org/apache/maven/doxia/siterenderer/velocity-toolmanager.expected.txt
@@ -19,23 +19,24 @@ We have the following keys in the context:
   15. dateRevision
   16. decoration
   17. display
-  18. doxiaSiteRendererVersion
-  19. esc
-  20. field
-  21. headContent
-  22. i18n
-  23. link
-  24. locale
-  25. loop
-  26. math
-  27. number
-  28. plexus
-  29. publishDate
-  30. relativePath
-  31. render
-  32. shortTitle
-  33. sorter
-  34. supportedLocales
-  35. text
-  36. title
-  37. xml
+  18. docRenderingContext
+  19. doxiaSiteRendererVersion
+  20. esc
+  21. field
+  22. headContent
+  23. i18n
+  24. link
+  25. locale
+  26. loop
+  27. math
+  28. number
+  29. plexus
+  30. publishDate
+  31. relativePath
+  32. render
+  33. shortTitle
+  34. sorter
+  35. supportedLocales
+  36. text
+  37. title
+  38. xml

-- 
To stop receiving notification emails like this one, please contact
['"commits@maven.apache.org" <co...@maven.apache.org>'].