Introduce new, Hugo templates based, website (#713)

* Add new hugo-based website for hawkBit

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Fix broken links + wordings
- , i.e. -> i.e,
- , e.g. -> e.g.,
- hawkbit -> hawkBit
- don't -> do not
- isn't -> is not

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Remove old documentation and add maven integration

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Add Intellij files to ignore

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Update README

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Update Copyright header
* exclude website artifacts

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Harmonize usage of i.e. and e.g.

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Add remark for windows user

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Fix indention

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Introduce review findings

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>

* Change image in 'run hawkbit' guide

Signed-off-by: Jeroen Laverman <jeroen.laverman@bosch-si.com>
This commit is contained in:
Jeroen Laverman
2018-08-01 11:01:02 +02:00
committed by Dominic Schabel
parent fa751c397b
commit f96876afe0
145 changed files with 1543 additions and 5832 deletions

0
docs/layouts/404.html Executable file
View File

50
docs/layouts/_default/list.html Executable file
View File

@@ -0,0 +1,50 @@
{{ partial "head" . }}
<div class="backdrop">
<div class="backdrop-paper"></div>
</div>
<input class="toggle" type="checkbox" id="toggle-drawer">
<input class="toggle" type="checkbox" id="toggle-search">
<label class="toggle-button overlay" for="toggle-drawer"></label>
<header class="header">
{{ partial "header" . }}
</header>
<main class="main">
<div class="drawer">
{{ partial "drawer" . }}
</div>
<article class="article">
<div class="wrapper">
<h1>Pages in {{ .Title }}</h1>
{{ range .Data.Pages }}
<a href="{{ .Permalink }}" title="{{ .Title }}">
<h2>{{ .Title }}</h2>
</a>
<br>
{{ printf "%s" .Summary | markdownify }} <br><a href="{{ .Permalink }}">[...]</a>
<hr>
{{ end }}
{{ partial "copyright.html" . }}
</div>
</article>
<div class="results" role="status" aria-live="polite">
<div class="scrollable">
<div class="wrapper">
<div class="meta"></div>
<div class="list"></div>
</div>
</div>
</div>
</main>
{{ partial "footer_js" . }}

View File

@@ -0,0 +1,49 @@
{{ partial "head" . }}
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
{{ $repo_id := replace .Site.Params.repo_url "https://github.com/" ""}}
{{ .Scratch.Set "repo_id" $repo_id }}
{{ end }}
<div class="backdrop">
<div class="backdrop-paper"></div>
</div>
<input class="toggle" type="checkbox" id="toggle-drawer">
<input class="toggle" type="checkbox" id="toggle-search">
<label class="toggle-button overlay" for="toggle-drawer"></label>
<header class="header">
{{ partial "header" . }}
</header>
<main class="main">
<div class="drawer">
{{ partial "drawer" . }}
</div>
<article class="article">
<div class="wrapper">
<h1>{{ .Title }} {{ if .IsDraft }} (Draft){{ end }}</h1>
{{ .Content }}
{{ partial "copyright.html" . }}
<footer class="footer">
{{ partial "footer" . }}
</footer>
</div>
</article>
<div class="results" role="status" aria-live="polite">
<div class="scrollable">
<div class="wrapper">
<div class="meta"></div>
<div class="list"></div>
</div>
</div>
</div>
</main>
{{ partial "footer_js" . }}

101
docs/layouts/index.html Executable file
View File

@@ -0,0 +1,101 @@
{{ partial "head" . }}
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
{{ $repo_id := replace .Site.Params.repo_url "https://github.com/" ""}}
{{ .Scratch.Set "repo_id" $repo_id }}
{{ end }}
<div class="backdrop">
<div class="backdrop-paper"></div>
</div>
<input class="toggle" type="checkbox" id="toggle-drawer">
<input class="toggle" type="checkbox" id="toggle-search">
<label class="toggle-button overlay" for="toggle-drawer"></label>
<header class="header">
{{ partial "header" . }}
</header>
<main class="main">
<div class="drawer">
{{ partial "drawer" . }}
</div>
<article class="article">
<div class="wrapper">
<div class="jumbotron">IoT. Update. Device.</div>
<div>
<p>
Eclipse hawkBit&trade; is a domain independent back-end framework for rolling out software updates
to constrained
edge devices as well as more powerful controllers and gateways connected to IP based networking
infrastructure.
</p>
<img src="images/hawkBit_overview.jpeg" />
<h2>Interfaces</h2>
<p>
hawkBit offers a direct device integration via HTTP or a device management federation API
which allows to connect devices with different protocol adapter. Users can make use of the graphical
user interface
and other service can interact with hawkBit through the RESTful management API.
</p>
<h2>Rollout</h2>
<div style="width: 100%; overflow: hidden;">
<div style="width: 50%; float: left;">
<p>
hawkBit supports an easy and flexible rollout management which allows you to update a large
amount of devices in separated groups.
</p>
<ul>
<li>Cascading start of the deployment groups based on installation status of the previous
group.
</li>
<li>Emergency shutdown of the rollout in case a group exceeds the defined error threshold.
</li>
<li>Rollout progress monitoring for the entire rollout and the individual groups.</li>
</ul>
</div>
<div style="margin-left: 50%;">
<br/>
<br/>
<img src="images/rollout.png" />
</div>
</div>
<h2>Package Model</h2>
<div style="width: 100%; overflow: hidden;">
<div style="width: 50%; float: left;">
<br/>
<img src="images/packagemodel.png" />
</div>
<div style="margin-left: 55%;">
<p>
A software update does not always contain only a single file. The hawkBit meta model allows
you to configure your files in virtual software and distribution packages.
</p>
</div>
</div>
</div>
{{ partial "copyright.html" . }}
</div>
</article>
<div class="results" role="status" aria-live="polite">
<div class="scrollable">
<div class="wrapper">
<div class="meta"></div>
<div class="list"></div>
</div>
</div>
</div>
</main>
{{ partial "footer_js" . }}

View File

@@ -0,0 +1,33 @@
<aside class="copyright" role="note">
<div class="logo">
<a href="https://www.eclipse.org" target="_blank">
<img src="/hawkbit/images/eclipse_foundation_logo.png" />
</a>
</div>
<p class="notice">
{{ with .Site.Params.copyright }}
&copy; {{ now.Year }} {{ . }} &ndash;
{{ end }}
Documentation built with
<a href="https://www.gohugo.io" target="_blank">Hugo</a>
using the
<a href="http://github.com/digitalcraftsman/hugo-material-docs" target="_blank">Material</a> theme.
</p>
<p class="quickLinks">
<a href="http://www.eclipse.org/legal/privacy.php" target="_blank">
&gt; Privacy Policy
</a>
<a href="http://www.eclipse.org/legal/termsofuse.php" target="_blank">
&gt; Terms of Use
</a>
<a href="http://www.eclipse.org/legal/copyright.php" target="_blank">
&gt; Copyright Agent
</a>
<a href="http://www.eclipse.org/legal" target="_blank">
&gt; Legal
</a>
<a href="https://www.eclipse.org/org/documents/epl-v10.php" target="_blank">
&gt; License
</a>
</p>
</aside>

View File

@@ -0,0 +1,75 @@
<nav aria-label="Navigation">
<a href="{{ with .Site.BaseURL }}{{ . }}{{ else }}{{ .Site.BaseURL }}{{ end }}" class="project">
<div class="banner">
{{ with .Site.Params.logo }}
<div class="logo">
<img src="{{ $.Site.BaseURL }}{{ . }}">
</div>
{{ end }}
<div class="name">
<strong>{{ .Site.Title }}&trade; {{ with .Site.Params.version }}<span class="version">{{ . }}</span>{{ end }}</strong>
{{ with .Scratch.Get "repo_id" }}
<br>
{{ . }}
{{ end }}
</div>
</div>
</a>
<div class="scrollable">
<div class="wrapper">
{{ if (eq (trim .Site.Params.provider " " | lower) "github") | and (isset .Site.Params "repo_url") }}
<ul class="repo">
<li class="repo-download">
<a href="https://hub.docker.com/u/hawkbit/" target="_blank" title="hawkBit on DockerHub" data-action="docker">
<i class="icon icon-search"></i> Dockerhub
</a>
</li>
<li class="repo-stars">
<a href="{{ .Site.Params.repo_url }}" target="_blank" title="hawkBit on GitHub" data-action="star">
<i class="icon icon-star"></i> Stars
<span class="count">&ndash;</span>
</a>
</li>
</ul>
<hr>
{{ end }}
<div class="toc">
{{ if gt (len .Site.Menus.main) 0 }}
<ul>
{{ partial "nav" . }}
</ul>
{{ end }}
{{ if isset .Site.Params "author" }}
<hr>
<ul>
<li>
<a href="https://gitter.im/eclipse/hawkbit?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge" title="Chat on Gitter" target="_blank">
<img src="https://badges.gitter.im/eclipse/hawkbit.svg" />
</a>
</li>
<li>
<a href="https://circleci.com/gh/eclipse/hawkbit" title="Circle CI Status" target="_blank">
<img src="https://circleci.com/gh/eclipse/hawkbit.svg?style=shield" />
</a>
</li>
<!--<li>
<a href="https://sonar.ops.bosch-iot-rollouts.com" title="SonarQube Status" target="_blank">
<img src="https://sonar.ops.bosch-iot-rollouts.com/api/badges/gate?key=org.eclipse.hawkbit:hawkbit-parent" />
</a>
</li>-->
<li>
<a href="https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent" title="Maven Central Status" target="_blank">
<img src="https://maven-badges.herokuapp.com/maven-central/org.eclipse.hawkbit/hawkbit-parent/badge.svg" />
</a>
</li>
</ul>
</ul>
{{ end }}
</div>
</div>
</div>
</nav>

View File

@@ -0,0 +1,74 @@
{{ if .IsPage }}
{{ if .Prev | or .Next }}
<nav class="pagination" aria-label="Footer">
<div class="previous">
{{ if .Prev }}
<a href="{{ .Prev.Permalink }}" title="{{ .Prev.Title }}">
<span class="direction">
Previous
</span>
<div class="page">
<div class="button button-previous" role="button" aria-label="Previous">
<i class="icon icon-back"></i>
</div>
<div class="stretch">
<div class="title">
{{ .Prev.Title }}
</div>
</div>
</div>
</a>
{{ end }}
</div>
<div class="next">
{{ if .Next }}
<a href="{{ .Next.Permalink }}" title="{{ .Next.Title }}">
<span class="direction">
Next
</span>
<div class="page">
<div class="stretch">
<div class="title">
{{ .Next.Title }}
</div>
</div>
<div class="button button-next" role="button" aria-label="Next">
<i class="icon icon-forward"></i>
</div>
</div>
</a>
{{ end }}
</div>
</nav>
{{ end }}
{{ end }}
{{ if .IsHome }}
{{ if gt (len .Site.Pages) 2 }}
<nav class="pagination" aria-label="Footer">
<div class="previous">
</div>
{{ $title := (index (.Site.Pages.ByDate) 1).Title }}
{{ $permalink := (index (.Site.Pages.ByDate) 1).Permalink }}
<div class="next">
<a href="{{ $permalink }}" title="{{ $title }}">
<span class="direction">
Next
</span>
<div class="page">
<div class="stretch">
<div class="title">
{{ $title }}
</div>
</div>
<div class="button button-next" role="button" aria-label="Next">
<i class="icon icon-forward"></i>
</div>
</div>
</a>
</div>
</nav>
{{ end }}
{{ end }}

View File

@@ -0,0 +1,60 @@
<script>
{{ with .Scratch.Get "repo_id" }}
var base_url = '{{ (printf "%s" $.Site.BaseURL) | safeJS }}';
var repo_id = '{{ . | safeJS }}';
{{ else }}
var base_url = '';
var repo_id = '';
{{ end }}
</script>
<script src="{{ "javascripts/application.js" | absURL }}"></script>
{{ range .Site.Params.custom_js }}
<script src="{{ . | absURL }}"></script>
{{ end }}
<script>
{{ "/* Add headers to scrollspy */" | safeJS }}
var headers = document.getElementsByTagName("h2");
var scrollspy = document.getElementById('scrollspy');
if(scrollspy) {
if(headers.length > 0) {
for(var i = 0; i < headers.length; i++) {
var li = document.createElement("li");
li.setAttribute("class", "anchor");
var a = document.createElement("a");
if(!headers[i].id)
a.setAttribute("href", headers[i].parentNode.href);
else
a.setAttribute("href", "#" + headers[i].id);
a.setAttribute("title", headers[i].innerHTML);
a.innerHTML = headers[i].innerHTML;
li.appendChild(a);
scrollspy.appendChild(li);
}
} else {
scrollspy.parentElement.removeChild(scrollspy)
}
{{ "/* Add permanent link next to the headers */" | safeJS }}
var headers = document.querySelectorAll("h1, h2, h3, h4, h5, h6");
for(i = 0; i < headers.length; i++) {
var a = document.createElement("a");
a.setAttribute("class", "headerlink");
a.setAttribute("href", "#" + headers[i].id);
a.setAttribute("title", "Permanent link");
a.innerHTML = {{ or .Site.Params.permalink "¶" }};
headers[i].appendChild(a);
}
}
</script>
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.8.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</body>
</html>

81
docs/layouts/partials/head.html Executable file
View File

@@ -0,0 +1,81 @@
<!DOCTYPE html>
<!--[if lt IE 7 ]><html class="no-js ie6"><![endif]-->
<!--[if IE 7 ]><html class="no-js ie7"><![endif]-->
<!--[if IE 8 ]><html class="no-js ie8"><![endif]-->
<!--[if IE 9 ]><html class="no-js ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js"> <!--<![endif]-->
<head {{ with .Site.LanguageCode }}lang="{{ . }}"{{ end }}>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<title>{{ .Title }}{{ if not .IsHome }} - {{ .Site.Title }}{{ end }}</title>
{{ .Hugo.Generator }}
{{ with .Site.Params.description }}
<meta name="description" content="{{ . }}">
{{ end }}
<link rel="canonical" href="{{ .Permalink }}">
{{ with .Site.Params.author }}
<meta name="author" content="{{ . }}">
{{ end }}
<meta property="og:url" content="{{ .Permalink }}">
{{ with .Site.Title }}<meta property="og:title" content="{{ . }}">{{ end }}
{{ with .Site.Params.logo }}<meta property="og:image" content="{{ . | absURL }}">{{ end }}
{{ with .Site.Title }}<meta name="apple-mobile-web-app-title" content="{{ . }}">{{ end }}
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<link rel="shortcut icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
<link rel="icon" type="image/x-icon" href="{{ with .Site.Params.favicon }}{{ . | absURL }}{{ else }}{{ "images/favicon.ico" | absURL }}{{ end }}">
<style>
@font-face {
font-family: 'Icon';
src: url('{{ "fonts/icon.eot?52m981" | absURL }}');
src: url('{{ "fonts/icon.eot?#iefix52m981" | absURL }}')
format('embedded-opentype'),
url('{{ "fonts/icon.woff?52m981" | absURL }}')
format('woff'),
url('{{ "fonts/icon.ttf?52m981" | absURL }}')
format('truetype'),
url('{{ "fonts/icon.svg?52m981#icon" | absURL }}')
format('svg');
font-weight: normal;
font-style: normal;
}
</style>
<link rel="stylesheet" href="{{ "stylesheets/application.css" | absURL }}">
<link rel="stylesheet" href="{{ "stylesheets/temporary.css" | absURL }}">
<link rel="stylesheet" href="{{ "stylesheets/palettes.css" | absURL }}">
<link rel="stylesheet" href="{{ with .Site.Params.highlight_css }}{{ . | absURL }}{{ else }}{{ "stylesheets/highlight/highlight.css" | absURL }}{{ end }}">
{{/* set default values if no custom ones are defined */}}
{{ $text := or .Site.Params.font.text "Roboto" }}
{{ $code := or .Site.Params.font.code "Roboto Mono" }}
<link rel="stylesheet" href="//fonts.googleapis.com/css?family={{ $text }}:400,700|{{ replace $code " " "+" | safeURL }}">
<style>
body, input {
font-family: '{{ $text }}', Helvetica, Arial, sans-serif;
}
pre, code {
font-family: '{{ $code }}', 'Courier New', 'Courier', monospace;
}
</style>
{{ range .Site.Params.custom_css }}
<link rel="stylesheet" href="{{ . | absURL }}">
{{ end }}
<script src="{{ "javascripts/modernizr.js" | absURL }}"></script>
<script src="//www.eclipse.org/eclipse.org-common/themes/solstice/public/javascript/vendor/cookieconsent/default.min.js"></script>
{{ with .RSSLink }}
<link href="{{ . }}" rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" />
<link href="{{ . }}" rel="feed" type="application/rss+xml" title="{{ $.Site.Title }}" />
{{ end }}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
</head>
<body class="{{ with .Site.Params.palette.primary }}palette-primary-{{ . }}{{end }} {{ with .Site.Params.palette.accent }}palette-accent-{{ . }}{{ end }}">

View File

@@ -0,0 +1,57 @@
<nav aria-label="Header">
<div class="bar default">
<div class="button button-menu" role="button" aria-label="Menu">
<label class="toggle-button icon icon-menu" for="toggle-drawer">
<span></span>
</label>
</div>
<div class="stretch">
<div class="title">
{{ .Title }}
</div>
</div>
{{ with .Site.Social.twitter }}
<div class="button button-twitter" role="button" aria-label="Twitter">
<a href="https://twitter.com/{{ . }}" title="@{{ . }} on Twitter" target="_blank" class="toggle-button icon icon-twitter"></a>
</div>
{{ end }}
{{ with .Site.Social.github }}
<div class="button button-github" role="button" aria-label="GitHub">
<a href="https://github.com/{{ . }}" title="@{{ . }} on GitHub" target="_blank" class="toggle-button icon icon-github"></a>
</div>
{{ end }}
{{ with .Site.Social.gitter }}
<div class="button button-github" role="button" aria-label="Gitter">
<a href="https://gitter.im/{{ . }}" title="@{{ . }} on Gitter" target="_blank" class="toggle-button icon fab fa-gitter"></a>
</div>
{{ end }}
{{ with .Site.Social.docker }}
<div class="button button-github" role="button" aria-label="Docker">
<a href="https://hub.docker.com/u/{{ . }}" title="{{ . }} on Docker Hub" target="_blank" class="toggle-button icon fab fa-docker"></a>
</div>
{{ end }}
<!-- TODO: disabled until Hugo supports the generation of a content index natively
<div class="button button-search" role="button" aria-label="Search">
<label class="toggle-button icon icon-search" title="Search" for="toggle-search"></label>
</div>
-->
</div>
<div class="bar search">
<div class="button button-close" role="button" aria-label="Close">
<label class="toggle-button icon icon-back" for="toggle-search"></label>
</div>
<div class="stretch">
<div class="field">
<input class="query" type="text" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck>
</div>
</div>
<div class="button button-reset" role="button" aria-label="Search">
<button class="toggle-button icon icon-close" id="reset-search"></button>
</div>
</div>
</nav>

View File

@@ -0,0 +1,13 @@
{{ $currentMenuEntry := .Scratch.Get "currentMenuEntry" }}
{{ $isCurrent := eq .Permalink ($currentMenuEntry.URL | absURL | printf "%s") }}
<a {{ if $isCurrent }}class="current"{{ end }} title="{{ $currentMenuEntry.Name }}" href="{{ $currentMenuEntry.URL }}">
{{ $currentMenuEntry.Pre }}
{{ $currentMenuEntry.Name }}
</a>
{{ if $isCurrent }}
<ul id="scrollspy">
</ul>
{{ end }}

View File

@@ -0,0 +1,4 @@
<div class="admonition note">
<p class="admonition-title">{{ .Get "title" }}</p>
<p>{{ printf "%s" .Inner | markdownify }}</p>
</div>

View File

@@ -0,0 +1,4 @@
<div class="admonition warning">
<p class="admonition-title">{{ .Get "title" }}</p>
<p>{{ printf "%s" .Inner | markdownify }}</p>
</div>