Projekt-Seite erstellt: Velocity-Template - Erster Anlauf (unvollständig)
[simple-mapper] / src / site / template.vm
diff --git a/src/site/template.vm b/src/site/template.vm
new file mode 100644 (file)
index 0000000..ac87689
--- /dev/null
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<!-- Generated by Apache Maven Doxia Site Renderer#if( $doxiaSiteRendererVersion ) $doxiaSiteRendererVersion#end at $dateFormat.format( $currentDate ) -->
+
+
+## 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 )
+    #end
+  #end
+#end
+#foreach ( $menu in $decoration.body.menus )
+  ## Nur benannte Menüs werden berücksichtigt
+  #if ($menu.name)
+    #buildPages ( $menu.items )
+  #end
+#end
+<!-- $pages -->
+
+#set ( $crumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
+#macro ( searchBreadcrumbTrail $items )
+  #set ( $sep = '' )
+  #foreach ( $item in $items )
+    #set ( $currentItemHref = $PathTool.calculateLink( $item.href, $relativePath ) )
+    #set ( $currentItemHref = $currentItemHref.replaceAll( '\\', '/' ) )
+    #if ( $currentItemHref == 'index.html' )
+      #set ( $name = $project.name )
+    #else
+      #set ( $name = $item.name )
+    #end
+    #if ( !$breadcrumbs && $alignedFileName == $currentItemHref )
+      #set ( $breadcrumbs = $project.getClass().forName('java.util.LinkedHashMap').newInstance() )
+      ## Den Titel der Seite korrigieren!
+      #set ( $title = "$project.name - $item.name" )
+      #set ( $shortTitle = $name )
+      #set ( $sinkhole = $breadcrumbs.put( 'index.html', $project.name) )
+      #foreach ( $crumb in $crumbs.entrySet() )
+        #set ( $sinkhole = $breadcrumbs.put( $crumb.key , $crumb.value ) )
+      #end
+      #set ( $sinkhole = $breadcrumbs.put( $alignedFileName , $shortTitle) )
+    #end
+    $sep"$currentItemHref": {
+      "name": "$name"
+      #if ( !$item.items.empty )
+        ,"childs": {
+        #set ( $sinkhole = $crumbs.put( $currentItemHref , $name) )
+        #searchBreadcrumbTrail ( $item.items )
+        #set ( $sinkhole = $crumbs.pop() )
+        }
+      #end
+    }
+    #set ( $sep =',' )
+  #end
+#end
+
+## Datenstrukturen für die Navigation vorbereiten
+#foreach ( $menu in $decoration.body.menus )
+  ## Nur unbenannte Menüs werden berücksichtigt
+  #if (!($menu.name))
+    ## Breadcrumb-Pfad suchen
+    "menu": {
+      #searchBreadcrumbTrail ( $menu.items )
+    }
+  #end
+#end
+
+<!-- title: $title -->
+<!-- short: $shortTitle -->
+<!-- Current: $alignedFileName -->
+<!-- Breadcrumbs: $breadcrumbs -->
+
+<!--
+#set ( $sep = '' )
+"$alignedFileName": [
+  #foreach( $crumb in $breadcrumbs.entrySet() )
+  $sep
+  { "uri": "$crumb.key", "name": "$crumb.value" }
+  #set ( $sep = ',' )
+  #end
+]
+-->
+
+<html
+    xmlns="http://www.w3.org/1999/xhtml"
+    xmlns:layout="http://www.thymeleaf.org"
+    layout:decorator="templates/layout"
+    th:with="uri='$alignedFileName'"
+    >
+  <head>
+    <title>juplo - $title</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=${outputEncoding}" />
+    <link rel="canonical" href="$project.url/$alignedFileName"/>
+  </head>
+  <body>
+    <article class="main" layout:fragment="maincontent">
+      <header><h1>$shortTitle</h1></header>
+      $bodyContent
+    </article>
+  </body>
+</html>