<!DOCTYPE html>
<%@params processor, doc, src %>
<%@import org.eclipse.golo.doc.HtmlProcessor %>
<%
let CONFIG = com.github.rjeschke.txtmark.Configuration.builder()
  : forceExtentedProfile()
  : setCodeBlockEmitter(blockHighlighter())
  : build()

%>
<html>
<head>
  <title><%= doc: moduleName() %> (Golo <%= doc: goloVersion() %>)</title>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
  <link rel="icon"
        href="data:image/x-icon;base64,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"/>
  <style>
    body {
      font-family: Helvetica, Arial, sans-serif;
      color: #333;
      background-color: #fff;
      border-color: #999999;
      border-width: 2px;
      margin: 1em auto;
      margin-left: 20em;
      max-width: 50em;
      text-align: left;
      padding: 0.5em;
    }
    pre {
      background-color: #eee;
      -webkit-border-radius: 5px;
      -moz-border-radius: 5px;
      border-radius: 5px;
      overflow: auto;
    }
    code {
      font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
      font-size: 80%;
      background-color: #eee;
      padding: 1px 3px;
      -webkit-border-radius: 2px;
      -moz-border-radius: 2px;
      border-radius: 2px;
    }
    pre code {
      font-size: 120%;
      padding-left: 0px;
      padding-right: 0px;
    }

    .listing:hover code[data-lang]:before {
      display: block;
    }

    .listing code {
      position: relative;
    }

    .listing code[data-lang]:before {
      display: none;
      content: attr(data-lang);
      position: absolute;
      font-size: 0.75em;
      top: .5rem;
      right: 0.5rem;
      line-height: 1;
      text-transform: uppercase;
      color: #000;
    }

    li p {
      margin: 0.3em;
    }
    ul > li {
      list-style-type: disc;
    }
    a:link, a:visited {
      color: #33e;
      text-decoration: none;
    }
    a:hover {
      color: #00f;
      text-decoration:underline;
    }
    h1 {
      color: #999;
      font-weight: 400;
      font-size: 250%;
    }
    h2 {
      border-bottom: 1px dotted #aaa;
      margin-bottom: 1em;
      color: #333;
      font-size: 200%;
      font-style: normal;
      font-weight: bold;
    }
    h3 {
      color: #666;
      font-size: 180%;
      font-style: normal;
      font-weight: bold;
    }
    h4 {
      font-size: 130%;
      font-style: normal;
      font-weight: bold;
    }
    h5 {
      font-size: 100%;
      font-style: normal;
      font-weight: bold;
    }
    h6 {
      font-size: 100%;
      font-style: italic;
      font-weight: normal;
    }

    #global-nav {
      display: block;
      font-size: 80%;
    }

    #toc {
      margin: 0;
      padding: 0;
      position: fixed;
      top: 0px;
      bottom: 0px;
      left: 0px;
      width: 20em;
      overflow: auto;
      white-space: nowrap;
    }

    #toc h1 {
      margin: .5em;
      padding: 1ex;
      font-size: 90%;
      font-weight: bold;
      font-style: normal;
      color: #333;
      background-color: #eee;
      text-align: center;
    }

    #toc ul {
      padding-left: 1em;
    }

    #toc > ul {
      font-size: 80%;
      margin: 0.5em;
    }

    #toc > ul > li {
      list-style: none;
      margin-bottom: 2ex;
    }

    #toc > ul > li > a {
      font-weight: bold;
      color: #333;
      display: block;
      padding: 1ex;
      margin: 0 1em 1ex 0;
      border-bottom: 1px solid #999;
    }

    #toc li {
      list-style-type: none;
    }

    :target {
      background-color: yellow;
    }

    .permalink {
      margin-left: .3em;
      font-size: 70%;
      visibility: hidden;
    }

    *:hover > .permalink {
      visibility: visible;
    }

    .golodoc {
      margin: 0;
      padding: 0;
      padding-left: 1.5em;
    }

    .srclink {
      float:  right;
      text-align: right;
      color: #999;
      font-size: 75%;
      margin-top: -2em;
    }

    .srclink a {
      color: inherit;
    }

    @media (max-width: 50em) {
      #toc {
        margin: auto;
        position: static;
        width: 100%;
        overflow: visible;
        white-space: normal;
      }

      #toc ul {
        padding-left: 1em;
        margin: 0;
      }

      #toc > ul {
        font-size: 100%;
        margin: 0em;
        padding: 0;
      }

      #toc > ul > li {
        list-style: none;
        margin-bottom: 1ex;
      }

      #toc > ul > li > a {
        font-weight: bold;
        color: #333;
        display: block;
        padding: 0ex;
        margin: 0;
        border-bottom: none;
      }

      #toc h1 {
        display: none;
      }

      #global-nav {
        display: block;
        font-size: 100%;
        z-index: 1000;
        background-color: #fff;
        position: fixed;
        top: 0;
        width: 100%;
        height: 1.5rem;
      }

      :target {
        padding-top: 1.5rem;
      }

      body {
        margin: 0;
        padding: 0.5em;
      }

      h1 {
        font-size: 200%;
      }
    }

  </style>
</head>
<body>
<h1>Documentation for <%= doc: moduleName() %></h1>

<div class="golodoc">
  <%= process(doc: moduleDocumentation(), 1, CONFIG) %>
</div>

<!-- begin table of content -->
<nav id="toc">
<h1><%= doc: moduleName() %></h1>
  <section id="global-nav">
  <a href="<%= processor: linkToFile(doc, "index") %>" rel="home">Module Index</a>
<a href="<%= processor: linkToFile(doc, "index-all") %>" rel="index">Global Index</a>
  </section>
<ul>
  <% if not doc: structs(): isEmpty() { %>
  <li><a href="#structs">Structs</a><ul>
    <% foreach structDoc in doc: structs() { %>
    <li><%= tocItem(structDoc) %></li>
    <% } %>
  </ul></li>
  <% } %>

  <% if not doc: unions(): isEmpty() { %>
  <li><a href="#unions">Unions</a><ul>
    <% foreach unionDoc in doc: unions() { %>
    <li><%= tocItem(unionDoc) %></li>
    <% } %>
  </ul></li>
  <% } %>

  <% if not doc: namedAugmentations(): isEmpty() { %>
  <li><a href="#namedAugmentations">Named Augmentations</a><ul>
    <% foreach namedAugmentationDoc in doc: namedAugmentations() { %>
    <li><%= tocItem(namedAugmentationDoc) %><ul>
      <% foreach funcDoc in namedAugmentationDoc { %>
      <li><%= tocItem(funcDoc) %></li>
      <% } %>
      </ul></li>
    <% } %>
  </ul></li>
  <% } %>

  <% if not doc: augmentations(): isEmpty() { %>
  <li><a href="#augmentations">Augmentations</a><ul>
    <% foreach augmentDoc in doc: augmentations() { %>
    <li><%= tocItem(augmentDoc) %><ul>
      <% foreach funcDoc in augmentDoc { %>
      <li><%= tocItem(funcDoc) %></li>
      <% } %>
    </ul></li>
    <% } %>
  </ul></li>
  <% } %>

  <% if not doc: functions(): isEmpty() { %>
  <li><a href="#functions">Functions</a><ul>
    <% foreach funcDoc in doc: functions() { %>
    <li><%= tocItem(funcDoc) %></li>
    <% } %>
  </ul></li>
  <% } %>
</ul>
</nav>
<!-- end table of content -->

<% if not doc: structs(): isEmpty() { %>
  <h2 id="structs">Structs</h2>
  <% foreach structDoc in doc: structs() { %>
    <%= sectionTitle(3, structDoc, src) %>

    <div class="golodoc">
      <%= process(structDoc: documentation(), 3, CONFIG) %>
    </div>

    <h5>Members</h5>
    <ul>
    <% foreach member in structDoc: members() { %>
    <li><code id="<%= member: id()%>"><%= member: name() %></code> <%= process(member: documentation(): trim(), 5, CONFIG) %>
      </li>
  <% } %>
    </ul>
  <% } %>
<% } %>

<% if not doc: unions(): isEmpty() { %>
  <h2 id="unions">Unions</h2>
  <% foreach unionDoc in doc: unions() { %>
    <%= sectionTitle(3, unionDoc, src) %>

    <div class="golodoc">
    <%= process(unionDoc: documentation(), 3, CONFIG) %>
    </div>

    <% foreach unionValueDoc in unionDoc: values() { %>
    <%= sectionTitle(4, unionValueDoc, src) %>

    <div class="golodoc"><%= process(unionValueDoc: documentation(), 4, CONFIG) %></div>

    <% if not unionValueDoc: members(): isEmpty() { %>
        <h5>Members</h5>
        <ul>
        <% foreach member in unionValueDoc: members() { %>
          <li><code id="<%= member: id()%>"><%= member: name() %></code> <%= process(member: documentation(): trim(), 5, CONFIG) %>
          </li>
        <% } %>
        </ul>
    <% } %>
    <% } %>
  <% } %>
<% } %>

<% if not doc: namedAugmentations(): isEmpty() { %>
  <h2 id="namedAugmentations">Named Augmentations</h2>
  <% foreach namedAugmentationDoc in doc: namedAugmentations() { %>
    <%= sectionTitle(3, namedAugmentationDoc, src) %>
    <div class="golodoc">
      <%= process(namedAugmentationDoc: documentation(), 3, CONFIG) %>
    </div>
    <% foreach funcDoc in namedAugmentationDoc { %>
      <%= sectionTitle(4, funcDoc, src) %>
      <div class="golodoc">
        <%= process(funcDoc: documentation(), 4, CONFIG) %>
      </div>
    <% } %>
  <% } %>
<% } %>


<% if not doc: augmentations(): isEmpty() { %>
  <h2 id="augmentations">Augmentations</h2>
  <% foreach augmentDoc in doc: augmentations() { %>
    <%= sectionTitle(3, augmentDoc, src) %>
    <div class="golodoc">
      <%= process(augmentDoc: documentation(), 3, CONFIG) %>
    </div>
    <% if not augmentDoc: augmentationNames(): isEmpty() { %>
      <h5>Named augmentations applied</h5>
      <ul>
      <% foreach name in augmentDoc: augmentationNames() { %>
      <li>
        <%if not name: contains(".") {%>
          <a href="#<%=name%>"><%= name %></a>
        <%} else {%>
        <%= name %>
        <%}%>
      </li>
      <% } %>
      </ul>
    <% } %>
    <% foreach funcDoc in augmentDoc { %>
      <%= sectionTitle(4, funcDoc, src) %>
      <div class="golodoc">
        <%= process(funcDoc: documentation(), 4, CONFIG) %>
      </div>
    <% } %>
  <% } %>
<% } %>

<% if not doc: functions(): isEmpty() { %>
  <h2 id="functions">Functions</h2>
  <% foreach funcDoc in doc: functions() { %>
    <%= sectionTitle(3, funcDoc, src) %>
    <div class="golodoc">
      <%= process(funcDoc: documentation(), 3, CONFIG) %>
    </div>
  <% } %>
<% } %>

<link rel="stylesheet" href="http://golo-lang.org/documentation/next/styles/github.min.css"/>
<script src="http://golo-lang.org/documentation/next/highlight.min.js"></script>
<script>hljs.initHighlighting()</script>

</body>
</html>
