4fda7f52f32c2071ce82df2c12507de6c40bba28
[maven-thymeleaf-skin] / src / site / template.vm
1 <!DOCTYPE html>
2 <!-- Generated by Apache Maven Doxia Site Renderer#if( $doxiaSiteRendererVersion ) $doxiaSiteRendererVersion#end at $dateFormat.format( $currentDate ) -->
3
4
5 ## Automatisch generierte Seiten einlesen
6 #set ( $pages = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
7 #macro ( buildPages $items )
8   #foreach ( $item in $items )
9     #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
10     #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
11     #set ( $sinkhole = $pages.put( $item.name, $currentItemHref ) )
12     #if ( !$item.items.empty )
13       #buildPages ( $item.items )
14     #end
15   #end
16 #end
17 #foreach ( $menu in $decoration.body.menus )
18   ## Nur benannte Menüs werden berücksichtigt
19   #if ($menu.name)
20     #buildPages ( $menu.items )
21   #end
22 #end
23 <!-- $pages -->
24
25 #set ( $crumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
26 #macro ( searchBreadcrumbTrail $items )
27   #set ( $sep = '' )
28   #foreach ( $item in $items )
29     #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
30     #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
31     #if ( $currentItemHref == 'index.html' )
32       #set ( $name = $project.name )
33     #else
34       #set ( $name = $item.name )
35     #end
36     $sep"$currentItemHref": {
37       "name": "$name"
38       #if ( !$item.items.empty )
39         ,"childs": {
40         #set ( $sinkhole = $crumbs.put( $currentItemHref , $name) )
41         #searchBreadcrumbTrail ( $item.items )
42         #set ( $sinkhole = $crumbs.pop() )
43         }
44       #end
45     #if ( !$breadcrumbs && $alignedFileName == $currentItemHref )
46       #set ( $breadcrumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
47       ## Den Titel der Seite korrigieren!
48       #set ( $title = "$project.name - $item.name" )
49       #set ( $shortTitle = $name )
50       #set ( $sinkhole = $breadcrumbs.put( 'index.html', $project.name) )
51       #set ( $sepc = '' )
52       #foreach ( $crumb in $crumbs.entrySet() )
53         #set ( $sinkhole = $breadcrumbs.put( $crumb.key , $crumb.value ) )
54         $sepc{ "uri": "$crumb.key", "name": "$crumb.value" }
55         #set( $sepc = ',' )
56       #end
57       #set ( $sinkhole = $breadcrumbs.put( $alignedFileName , $shortTitle) )
58       ]
59     #end
60     }
61     #set ( $sep =',' )
62   #end
63 #end
64
65 <!-- title: $title -->
66 <!-- short title: $shortTitle -->
67 <!-- current page: $alignedFileName -->
68
69 <html
70     xmlns="http://www.w3.org/1999/xhtml"
71     xmlns:layout="http://www.thymeleaf.org"
72     layout:decorator="templates/layout"
73     th:with="uri='$alignedFileName'"
74     >
75   <head>
76     <title>juplo - $title</title>
77     <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
78     <link rel="canonical" href="$project.url/$alignedFileName"/>
79   </head>
80   <body>
81     <article class="main" layout:fragment="maincontent" juplo:variables='merge:{
82 ## Datenstrukturen für die Navigation vorbereiten
83 #foreach ( $menu in $decoration.body.menus )
84   ## Nur unbenannte Menüs werden berücksichtigt
85   #if (!($menu.name))
86     ## Breadcrumb-Pfad suchen
87     "pages": {
88       #searchBreadcrumbTrail ( $menu.items )
89     }
90   #end
91 #end
92 }'>
93       <header><h1>$shortTitle</h1></header>
94       $bodyContent
95     </article>
96   </body>
97 </html>