The following is a sample Velocity template you could use to merge your files. This is the default_site.vm file used by the maven site plugin.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- Generated by Apache Maven Doxia at $dateFormat.format( $currentDate ) --> #macro ( link $href $name $target $img $position $alt $border $width $height ) #set ( $linkTitle = ' title="' + $name + '"' ) #if( $target ) #set ( $linkTarget = ' target="' + $target + '"' ) #else #set ( $linkTarget = "" ) #end #if ( ( $href.toLowerCase().startsWith("http") || $href.toLowerCase().startsWith("https") ) ) #set ( $linkClass = ' class="externalLink"' ) #else #set ( $linkClass = "" ) #end #if ( $img ) #if ( $position == "left" ) <a href="$href"$linkClass$linkTarget$linkTitle>#image($img $alt $border $width $height)$name</a> #else <a href="$href"$linkClass$linkTarget$linkTitle>$name #image($img $alt $border $width $height)</a> #end #else <a href="$href"$linkClass$linkTarget$linkTitle>$name</a> #end #end ## #macro ( image $img $alt $border $width $height ) #if( $img ) #if ( ! ( $img.toLowerCase().startsWith("http") || $img.toLowerCase().startsWith("https") ) ) #set ( $imgSrc = $PathTool.calculateLink( $img, ${relativePath} ) ) #set ( $imgSrc = $imgSrc.replaceAll( "\\", "/" ) ) #set ( $imgSrc = ' src="' + $imgSrc + '"' ) #else #set ( $imgSrc = ' src="' + $img + '"' ) #end #if( $alt ) #set ( $imgAlt = ' alt="' + $alt + '"' ) #else #set ( $imgAlt = ' alt=""' ) #end #if( $border ) #set ( $imgBorder = ' border="' + $border + '"' ) #else #set ( $imgBorder = "" ) #end #if( $width ) #set ( $imgWidth = ' width="' + $width + '"' ) #else #set ( $imgWidth = "" ) #end #if( $height ) #set ( $imgHeight = ' height="' + $height + '"' ) #else #set ( $imgHeight = "" ) #end <img class="imageLink"$imgSrc$imgAlt$imgBorder$imgWidth$imgHeight/> #end #end #macro ( banner $banner $id ) #if ( $banner ) #if( $banner.href ) <a href="$banner.href" id="$id"#if( $banner.alt ) title="$banner.alt"#end> #else <div id="$id"> #end ## #if( $banner.src ) #set ( $src = $banner.src ) #if ( ! ( $src.toLowerCase().startsWith("http") || $src.toLowerCase().startsWith("https") ) ) #set ( $src = $PathTool.calculateLink( $src, ${relativePath} ) ) #set ( $src = $src.replaceAll( "\\", "/" ) ) #end #if ( $banner.alt ) #set ( $alt = $banner.alt ) #else #set ( $alt = $banner.name ) #end <img src="$src" alt="$alt" /> #else $banner.name #end ## #if( $banner.href ) </a> #else </div> #end #end #end ## #macro ( links $links ) #set ( $counter = 0 ) #foreach( $item in $links ) #set ( $counter = $counter + 1 ) #set ( $currentItemHref = $PathTool.calculateLink( $item.href, ${relativePath} ) ) #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) ) #link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) #if ( $links.size() > $counter ) | #end #end #end ## #macro ( breadcrumbs $breadcrumbs ) #set ( $counter = 0 ) #foreach( $item in $breadcrumbs ) #set ( $counter = $counter + 1 ) #set ( $currentItemHref = $PathTool.calculateLink( $item.href, ${relativePath} ) ) #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) ) ## #if ( $currentItemHref == $alignedFileName || $currentItemHref == "" ) $item.name #else #link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) #end #if ( $breadcrumbs.size() > $counter ) > #end #end #end ## #macro ( displayTree $display $item ) #if ( $item && $item.items && $item.items.size() > 0 ) #foreach( $subitem in $item.items ) #set ( $subitemHref = $PathTool.calculateLink( $subitem.href, ${relativePath} ) ) #set ( $subitemHref = $subitemHref.replaceAll( "\\", "/" ) ) #if ( $alignedFileName == $subitemHref ) #set ( $display = true ) #end ## #displayTree( $display $subitem ) #end #end #end ## #macro ( menuItem $item ) #set ( $collapse = "none" ) #set ( $currentItemHref = $PathTool.calculateLink( $item.href, ${relativePath} ) ) #set ( $currentItemHref = $currentItemHref.replaceAll( "\\", "/" ) ) ## #if ( $item && $item.items && $item.items.size() > 0 ) #if ( $item.collapse == false ) #set ( $collapse = "expanded" ) #else ## By default collapsed #set ( $collapse = "collapsed" ) #end ## #set ( $display = false ) #displayTree( $display $item ) ## #if ( $alignedFileName == $currentItemHref || $display ) #set ( $collapse = "expanded" ) #end #end <li class="$collapse"> #if ( $item.img ) #if ( $item.position == "left" ) #if ( $alignedFileName == $currentItemHref ) <strong>#image($item.img $item.alt $item.border $item.width $item.height) $item.name</strong> #else #link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height) #end #else #if ( $alignedFileName == $currentItemHref ) <strong>$item.name #image($item.img $item.alt $item.border $item.width $item.height)</strong> #else #link($currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height) #end #end #else #if ( $alignedFileName == $currentItemHref ) <strong>$item.name</strong> #else #link( $currentItemHref $item.name $item.target $item.img $item.position $item.alt $item.border $item.width $item.height ) #end #end #if ( $item && $item.items && $item.items.size() > 0 ) #if ( $collapse == "expanded" ) <ul> #foreach( $subitem in $item.items ) #menuItem( $subitem ) #end </ul> #end #end </li> #end ## #macro ( mainMenu $menus ) #foreach( $menu in $menus ) #if ( $menu.name ) #if ( $menu.img ) #if( $menu.position ) #set ( $position = $menu.position ) #else #set ( $position = "left" ) #end ## #if ( ! ( $menu.img.toLowerCase().startsWith("http") || $menu.img.toLowerCase().startsWith("https") ) ) #set ( $src = $PathTool.calculateLink( $menu.img, ${relativePath} ) ) #set ( $src = $src.replaceAll( "\\", "/" ) ) #set ( $src = ' src="' + $src + '"' ) #else #set ( $src = ' src="' + $menu.img + '"' ) #end ## #if( $menu.alt ) #set ( $alt = ' alt="' + $menu.alt + '"' ) #else #set ( $alt = ' alt="' + $menu.name + '"' ) #end ## #if( $menu.border ) #set ( $border = ' border="' + $menu.border + '"' ) #else #set ( $border = ' border="0"' ) #end ## #if( $menu.width ) #set ( $width = ' width="' + $menu.width + '"' ) #else #set ( $width = "" ) #end #if( $menu.height ) #set ( $height = ' height="' + $menu.height + '"' ) #else #set ( $height = "" ) #end ## #set ( $img = '<img class="imageLink"' + $src + $alt + $border + $width + $height + "/>" ) ## #if ( $position == "left" ) <h5>$img $menu.name</h5> #else <h5>$menu.name $img</h5> #end #else <h5>$menu.name</h5> #end #end #if ( $menu.items && $menu.items.size() > 0 ) <ul> #foreach( $item in $menu.items ) #menuItem( $item ) #end </ul> #end #end #end ## #macro ( copyright ) #if ( $project ) #if ( ${project.organization} && ${project.organization.name} ) #set ( $period = "" ) #else #set ( $period = "." ) #end ## #set ( $currentYear = ${currentDate.year} + 1900 ) ## #if ( ${project.inceptionYear} && ( ${project.inceptionYear} != ${currentYear.toString()} ) ) ${project.inceptionYear}-${currentYear}${period} #else ${currentYear}${period} #end ## #if ( ${project.organization} ) #if ( ${project.organization.name} && ${project.organization.url} ) <a href="$project.organization.url">${project.organization.name}</a>. #elseif ( ${project.organization.name} ) ${project.organization.name}. #end #end #end #end ## #macro ( publishDate $position $publishDate $version ) #if ( $publishDate && $publishDate.format ) #set ( $format = $publishDate.format ) #else #set ( $format = "yyyy-MM-dd" ) #end ## $dateFormat.applyPattern( $format ) ## #set ( $dateToday = $dateFormat.format( $currentDate ) ) ## #if ( $publishDate && $publishDate.position ) #set ( $datePosition = $publishDate.position ) #else #set ( $datePosition = "left" ) #end ## #if ( $version ) #if ( $version.position ) #set ( $versionPosition = $version.position ) #else #set ( $versionPosition = "left" ) #end #else #set ( $version = "" ) #set ( $versionPosition = "left" ) #end ## #set ( $breadcrumbs = $decoration.body.breadcrumbs ) #set ( $links = $decoration.body.links ) #if ( $datePosition.equalsIgnoreCase( "right" ) && $links && $links.size() > 0 ) #set ( $prefix = " |" ) #else #set ( $prefix = "" ) #end ## #if ( $datePosition.equalsIgnoreCase( $position ) ) #if ( ( $datePosition.equalsIgnoreCase( "right" ) ) || ( $datePosition.equalsIgnoreCase( "bottom" ) ) ) $prefix <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> #if ( $versionPosition.equalsIgnoreCase( $position ) ) | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> #end #elseif ( ( $datePosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $datePosition.equalsIgnoreCase( "navigation-top" ) ) ) <div id="lastPublished"> <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> #if ( $versionPosition.equalsIgnoreCase( $position ) ) | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> #end </div> #elseif ( $datePosition.equalsIgnoreCase("left") ) <div class="xleft"> <span id="publishDate">$i18n.getString( "site-renderer", $locale, "template.lastpublished" ): $dateToday</span> #if ( $versionPosition.equalsIgnoreCase( $position ) ) | <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> #end #if ( $breadcrumbs && $breadcrumbs.size() > 0 ) | #breadcrumbs( $breadcrumbs ) #end </div> #end #elseif ( $versionPosition.equalsIgnoreCase( $position ) ) #if ( ( $versionPosition.equalsIgnoreCase( "right" ) ) || ( $versionPosition.equalsIgnoreCase( "bottom" ) ) ) $prefix <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> #elseif ( ( $versionPosition.equalsIgnoreCase( "navigation-bottom" ) ) || ( $versionPosition.equalsIgnoreCase( "navigation-top" ) ) ) <div id="lastPublished"> <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> </div> #elseif ( $versionPosition.equalsIgnoreCase("left") ) <div class="xleft"> <span id="projectVersion">$i18n.getString( "site-renderer", $locale, "template.version" ): ${project.version}</span> #if ( $breadcrumbs && $breadcrumbs.size() > 0 ) | #breadcrumbs( $breadcrumbs ) #end </div> #end #elseif ( $position.equalsIgnoreCase( "left" ) ) #if ( $breadcrumbs && $breadcrumbs.size() > 0 ) <div class="xleft"> #breadcrumbs( $breadcrumbs ) </div> #end #end #end ## #macro ( poweredByLogo $poweredBy ) #if( $poweredBy ) #foreach ($item in $poweredBy) #if( $item.href ) #set ( $href = $PathTool.calculateLink( $item.href, ${relativePath} ) ) #set ( $href = $href.replaceAll( "\\", "/" ) ) #else #set ( $href="http://maven.apache.org/" ) #end ## #if( $item.name ) #set ( $name = $item.name ) #else #set ( $name = $i18n.getString( "site-renderer", $locale, "template.builtby" ) ) #set ( $name = "${name} Maven" ) #end ## #if( $item.img ) #set ( $img = $item.img ) #else #set ( $img = "images/logos/maven-feather.png" ) #end ## #if ( ! ( $img.toLowerCase().startsWith("http") || $img.toLowerCase().startsWith("https") ) ) #set ( $img = $PathTool.calculateLink( $img, ${relativePath} ) ) #set ( $img = $src.replaceAll( "\\", "/" ) ) #end ## #if( $item.alt ) #set ( $alt = ' alt="' + $item.alt + '"' ) #else #set ( $alt = ' alt="' + $name + '"' ) #end ## #if( $item.border ) #set ( $border = ' border="' + $item.border + '"' ) #else #set ( $border = "" ) #end ## #if( $item.width ) #set ( $width = ' width="' + $item.width + '"' ) #else #set ( $width = "" ) #end #if( $item.height ) #set ( $height = ' height="' + $item.height + '"' ) #else #set ( $height = "" ) #end ## <a href="$href" title="$name" class="poweredBy"> <img class="poweredBy" $alt src="$img" $border $width $height /> </a> #end #if( $poweredBy.isEmpty() ) <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy"> <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="${relativePath}/images/logos/maven-feather.png" /> </a> #end #else <a href="http://maven.apache.org/" title="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" class="poweredBy"> <img class="poweredBy" alt="$i18n.getString( "site-renderer", $locale, "template.builtby" ) Maven" src="${relativePath}/images/logos/maven-feather.png" /> </a> #end #end ## <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}" /> <title>$title</title> <style type="text/css" media="all"> @import url("${relativePath}/css/maven-base.css"); @import url("${relativePath}/css/maven-theme.css"); @import url("${relativePath}/css/site.css"); @import url("${relativePath}/css/highlight.css"); </style> <link rel="stylesheet" href="${relativePath}/css/print.css" type="text/css" media="print" /> #foreach( $author in $authors ) <meta name="author" content="$author" /> #end #if ( $dateCreation ) <meta name="Date-Creation-yyyymmdd" content="$dateCreation" /> #end #if ( $dateRevision ) <meta name="Date-Revision-yyyymmdd" content="$dateRevision" /> #end #if ( $locale ) <meta http-equiv="Content-Language" content="$locale.language" /> #end #if ( $decoration.body.head ) #foreach( $item in $decoration.body.head.getChildren() ) ## Workaround for DOXIA-150 due to a non-desired behaviour in p-u ## @see org.codehaus.plexus.util.xml.Xpp3Dom#toString() ## @see org.codehaus.plexus.util.xml.Xpp3Dom#toUnescapedString() #set ( $documentHeader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" ) #set ( $documentHeader = $documentHeader.replaceAll( "\\", "" ) ) #if ( $item.name == "script" ) $StringUtils.replace( $item.toUnescapedString(), $documentHeader, "" ) #else $StringUtils.replace( $item.toString(), $documentHeader, "" ) #end #end #end $headContent </head> <body class="composite"> <div id="banner"> #banner( $decoration.bannerLeft "bannerLeft" ) #banner( $decoration.bannerRight "bannerRight" ) <div class="clear"> <hr/> </div> </div> <div id="breadcrumbs"> #publishDate( "left" $decoration.publishDate $decoration.version ) <div class="xright">#links( $decoration.body.links )#publishDate( "right" $decoration.publishDate $decoration.version )</div> <div class="clear"> <hr/> </div> </div> <div id="leftColumn"> <div id="navcolumn"> #publishDate( "navigation-top" $decoration.publishDate $decoration.version ) #mainMenu( $decoration.body.menus ) #poweredByLogo( $decoration.poweredBy ) #publishDate( "navigation-bottom" $decoration.publishDate $decoration.version ) </div> </div> <div id="bodyColumn"> <div id="contentBox"> $bodyContent </div> </div> <div class="clear"> <hr/> </div> <div id="footer"> <div class="xright">Copyright ©#copyright()All Rights Reserved.#publishDate( "bottom" $decoration.publishDate $decoration.version )</div> <div class="clear"> <hr/> </div> </div> </body> </html>