X-Git-Url: https://juplo.de/gitweb/?p=maven-thymeleaf-skin;a=blobdiff_plain;f=src%2Fsite%2Ftemplate.vm;h=c91a1b20e8f156ee8c1e228b1425958d47176d61;hp=4fda7f52f32c2071ce82df2c12507de6c40bba28;hb=2f89199db749b90422c828c2479b3407e45357ca;hpb=0a3b0504faaf8e5a297c0acd38e4763020f2b393 diff --git a/src/site/template.vm b/src/site/template.vm index 4fda7f5..c91a1b2 100644 --- a/src/site/template.vm +++ b/src/site/template.vm @@ -2,26 +2,68 @@ -## Automatisch generierte Seiten einlesen #set ( $pages = $project.getClass().forName('java.util.LinkedHashMap').newInstance() ) -#macro ( buildPages $items ) - #foreach ( $item in $items ) - #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) ) - #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) ) - #set ( $sinkhole = $pages.put( $item.name, $currentItemHref ) ) - #if ( !$item.items.empty ) - #buildPages ( $item.items ) +#set ( $stack = $project.getClass().forName('java.util.LinkedList').newInstance() ) +#macro ( buildPages $menu ) + + #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) ) + #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) ) + + #if ($currentItemHref) + #set( $sinkhole = $stack.peek().childs.put($currentItemHref, $menu.name) ) + #end + + #set ( $page = $project.getClass().forName('java.util.LinkedHashMap').newInstance() ) + #set ( $sinkhole = $page.put("name", $menu.name) ) + #set ( $sinkhole = $page.put("uri", $currentItemHref) ) + #set ( $sinkhole = $page.put("childs", $project.getClass().forName('java.util.LinkedHashMap').newInstance()) ) + #set ( $sinkhole = $stack.push( $page ) ) + + #foreach ( $item in $menu.items ) + #buildPages ( $item ) + #end + + #set ( $page = $stack.pop() ) + #if ( $page.uri != "" ) + + #if ( $pages.containsKey($page.uri) ) + #set ( $childs = $pages.get($page.uri).childs ) + #set ( $sinkhole = $page.put("childs", $childs) ) + + + #else + + #end + + #set ( $sinkhole = $pages.put($page.uri, $page) ) + #set ( $sinkhole = $page.remove("uri") ) + + #else + + #end #end + + +## Seiten einlesen #foreach ( $menu in $decoration.body.menus ) ## Nur benannte Menüs werden berücksichtigt #if ($menu.name) - #buildPages ( $menu.items ) + #buildPages ( $menu ) #end #end +#foreach ( $menu in $decoration.body.menus ) + ## Nur unbenannte Menüs werden berücksichtigt + #if (!($menu.name)) + #buildPages ( $menu ) + #end +#end + + + #set ( $crumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() ) #macro ( searchBreadcrumbTrail $items ) #set ( $sep = '' )