diff --git a/maven-plugins/maven-site-plugin/src/main/resources/org/apache/maven/doxia/maven-site.vm b/maven-plugins/maven-site-plugin/src/main/resources/org/apache/maven/doxia/maven-site.vm index aed75b0649..26d0dfd4b5 100644 --- a/maven-plugins/maven-site-plugin/src/main/resources/org/apache/maven/doxia/maven-site.vm +++ b/maven-plugins/maven-site-plugin/src/main/resources/org/apache/maven/doxia/maven-site.vm @@ -40,18 +40,45 @@ #end #macro ( menuItem $item ) + #set ( $collapse = "none" ) + #set ( $currentItemHref = $PathTool.calculateLink( $item.getAttribute( "href" ), $relativePath ) ) + #set ( $currentFileName = $currentFileName.replaceAll( "\\", "/" ) ) + #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) ) + + #set ( $currentFileNameLastSlash = $currentFileName.lastIndexOf( "/" ) ) + #if ( $currentFileNameLastSlash != -1) + #set ( $currentFileNameTmp = $currentFileName.substring( 0, $currentFileNameLastSlash ) ) + #else + #set ( $currentFileNameTmp = $currentFileName.substring( 0, $currentFileName.lengh() ) ) + #end + + #set ( $currentItemHrefLastSlash = $currentItemHref.lastIndexOf( "/" ) ) + #if ( $currentItemHrefLastSlash != -1) + #set ( $currentItemHrefTmp = $currentItemHref.substring( 0, $currentItemHrefLastSlash ) ) + #else + #set ( $currentItemHrefTmp = $currentItemHref.substring( 0, $currentItemHref.lengh() ) ) + #end + + #set ( $tree = $currentFileNameTmp && $currentItemHrefTmp && $currentFileNameTmp.startsWith( $currentItemHrefTmp ) ) + #if ( $item.getChildCount() > 0 ) - #if ( $item.getAttribute( "collapse" ) == "true" ) - #set ( $collapse = "collapsed" ) + #if ( ( $item.getAttribute( "collapse" ) ) && ( $item.getAttribute( "collapse" ).equalsIgnoreCase( "false" ) ) ) + #set ( $collapse = "expanded" ) #else + ## By default collapsed + #set ( $collapse = "collapsed" ) + #end + + #if ( $currentFileName == $currentItemHref ) + #set ( $collapse = "expanded" ) + #end + + #if ( $tree ) #set ( $collapse = "expanded" ) #end - #else - #set ( $collapse = "none" ) #end - #set ( $currentItemHref = $PathTool.calculateLink( $item.getAttribute( "href" ), $relativePath ) ) -
  • - #if ( $currentFileName.replaceAll('\\', '/') == $currentItemHref ) +
  • + #if ( $currentFileName == $currentItemHref ) $item.getAttribute( "name" ) #else $item.getAttribute( "name" ) @@ -59,12 +86,12 @@
  • #if ( $item.getChildren() ) #if ( $item.getChildCount() > 0 ) - #if ( $collapse != "collapsed" ) - + #if ( $collapse == "expanded" || $tree ) + #end #end #end diff --git a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test6/src/site/site.xml b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test6/src/site/site.xml index 040f64acd2..504669cbf7 100644 --- a/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test6/src/site/site.xml +++ b/maven-plugins/maven-site-plugin/src/test/projects/site-plugin-test6/src/site/site.xml @@ -37,7 +37,7 @@ - + @@ -48,6 +48,24 @@ + + + + + + + + + + + + + + + + + + ${reports}