Initial version (not really functioning)
[maven-thymeleaf-skin] / src / main / resources / META-INF / maven / site.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     #if ( !$breadcrumbs && $alignedFileName == $currentItemHref )
37       #set ( $breadcrumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
38       ## Den Titel der Seite korrigieren!
39       #set ( $title = "$project.name - $item.name" )
40       #set ( $shortTitle = $name )
41       #set ( $sinkhole = $breadcrumbs.put( 'index.html', $project.name) )
42       #foreach ( $crumb in $crumbs.entrySet() )
43         #set ( $sinkhole = $breadcrumbs.put( $crumb.key , $crumb.value ) )
44       #end
45       #set ( $sinkhole = $breadcrumbs.put( $alignedFileName , $shortTitle) )
46     #end
47     $sep"$currentItemHref": {
48       "name": "$name"
49       #if ( !$item.items.empty )
50         ,"childs": {
51         #set ( $sinkhole = $crumbs.put( $currentItemHref , $name) )
52         #searchBreadcrumbTrail ( $item.items )
53         #set ( $sinkhole = $crumbs.pop() )
54         }
55       #end
56     }
57     #set ( $sep =',' )
58   #end
59 #end
60
61 ## Datenstrukturen für die Navigation vorbereiten
62 #foreach ( $menu in $decoration.body.menus )
63   ## Nur unbenannte Menüs werden berücksichtigt
64   #if (!($menu.name))
65     ## Breadcrumb-Pfad suchen
66     "menu": {
67       #searchBreadcrumbTrail ( $menu.items )
68     }
69   #end
70 #end
71
72 <!-- title: $title -->
73 <!-- short title: $shortTitle -->
74 <!-- current page: $alignedFileName -->
75 <!-- breadcrumbs: $breadcrumbs -->
76
77 <!--
78 #set ( $sep = '' )
79 "$alignedFileName": [
80   #foreach( $crumb in $breadcrumbs.entrySet() )
81   $sep
82   { "uri": "$crumb.key", "name": "$crumb.value" }
83   #set ( $sep = ',' )
84   #end
85 ]
86 -->
87
88 <html
89     xmlns="http://www.w3.org/1999/xhtml"
90     xmlns:layout="http://www.thymeleaf.org"
91     layout:decorator="templates/layout"
92     th:with="uri='$alignedFileName'"
93     >
94   <head>
95     <title>juplo - $title</title>
96     <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
97     <link rel="canonical" href="$project.url/$alignedFileName"/>
98   </head>
99   <body>
100     <article class="main" layout:fragment="maincontent">
101       <header><h1>$shortTitle</h1></header>
102       $bodyContent
103     </article>
104   </body>
105 </html>