Compare commits

...
Author SHA1 Message Date
Soam Vasani 52c77c5bf5 Disable dotnet20 build for now (issue #359) 2017-09-27 07:46:00 -07:00
Soam Vasani 63a2cbb417 chmod +x dotnet20/build.sh 2017-09-27 06:55:54 -07:00
Soam Vasani d2f4be7a44 Set version to 0.3.0-rc 2017-09-26 23:35:08 -07:00
Erwin van EykandSoam Vasani 33f967b61b Fission workflow env integration (#336)
Add a flag to the environment to control multiple specialization -- the max number of functions per container. This can be set to 1 or infinity. 

Add an api proxy to workflow apiserver from the controller.

Add function metadata to FunctionLoadRequest; every v2 environment now knows which function it's loading (but can ignore that information if it wants to).

Add function identity headers to router. This is useful for multiple specialization, so the router can disambiguate between different function calls. (If this turns out to be a non-trivial perf overhead, we could add these headers conditionally, but for now they are always added.)
2017-09-26 18:36:07 -07:00
Soam VasaniandGitHub 3f58247b59 Dump package resources at the end of tests (#357) 2017-09-26 12:55:03 -07:00
Erwin van EykandSoam Vasani 45756363bc Add bodyparser for text/* mime types to node-env (#349) 2017-09-25 11:11:43 -07:00
Ta-Ching ChenandSoam Vasani e587eca08f Add builder manager support (#308)
This change orchestrates function builds.

Environments (in v2) define a builder image, just like they do a runtime image. The builder image contains a build script that's invoked with source and deployment paths (as env vars).

The buildermgr watches for environments with build images defined, and creates build deployments and services.

Functions can define source and deployment. Buildermgr watches for functions with source code (and build status == pending) and invokes the environment's builder when appropriate. It captures logs from the build and sets the build status (success/failure) and build lots into the PackageStatus.
2017-09-25 07:53:09 -07:00
Ta-Ching ChenandSoam Vasani a720377f3c Use Containers to find matched storage containers (#350) (#353)
Use stow api correctly to find our function storage container on restarts.
2017-09-24 10:36:06 -07:00
Ta-Ching ChenandSoam Vasani 42819ba362 Fix storage service failed to start after restarting it (#352) 2017-09-24 08:21:13 -07:00
Ta-Ching ChenandSoam Vasani e56e6482b3 Fix missing checksum from CLI uploads (issue #342) (#343)
Archive upload from the CLI wasn't filling in the checksum field, causing validation to fail.
2017-09-22 12:27:42 -07:00
James SturtevantandSoam Vasani 0d252fabcd copy trigger metadata directly from map (#341) 2017-09-22 06:54:05 -07:00
Soam Vasani dedeef7077 Add dotnet20 to release.sh 2017-09-21 11:47:11 -07:00
João AlmeidaandSoam Vasani 7bd3f20ad6 Fission dotnet 2.0 env (#337)
Adding a new dotnet environment, supporting dotnet core 2.0.

Project structure changed. Project.json was abandoned. Project.csproj is now used.
2017-09-21 11:30:15 -07:00
Daijiro WachiandSoam Vasani dc1ffa859d Update a dependency in the package.json (#339)
Since `mz` has already bumped for several times without
breaking change, it's better to follow the updates.

```console
$ npm outdated
Package  Current  Wanted  Latest  Location
mz         2.1.0   2.1.0   2.7.0  fission-nodejs-runtime
```

Fixes: https://github.com/fission/fission/issues/167
2017-09-21 05:55:45 -07:00
Soam VasaniandGitHub c63a427ca3 Fix internal route setup bug (#335)
Fixes #334 which broke internal routes, and adds a test.
2017-09-20 06:51:56 -07:00
Soam VasaniandGitHub e4a4ec4bff Post-install hook to poke analytics function (#325)
Send chart name and chart version after installation to an analytics function. Users can opt-out with --set analytics=false.
2017-09-19 15:39:36 -07:00
TAKAHASHI YutoandSoam Vasani 7190661360 Tag and push the latest environment images (#333)
Update release script to push the latest tag for env images.
2017-09-19 06:34:31 -07:00
Soam VasaniandGitHub 67c38f2f29 Function service cache partial support for multiple specialization (#332)
This adds partial support for multiple specialization to the
function service cache. It allows Add() to succeed if the pod and
address maps already contain entries.

But it doesn't deal with DeletePod and TouchByAddress. That's ok for
now, because the workflow engine never deletes the environment pod
(that pod is the workflow engine).

However, if/when we want full support for multiple specialization,
that will require updating both DeletePod and TouchByAddress.
2017-09-18 15:57:06 -07:00
Myles BorinsandSoam Vasani 23e20115da Upgrade Node Environment to 8.x (#329)
7.x has not been maintained since April. 8.x is going into LTS
during October and will receive another 30 months of support.
2017-09-17 05:11:11 -07:00
Erwin van EykandSoam Vasani 5072a13c7c Removed obsolete Kubernetes YAMLs (#327)
We've switched to helm, and the switch seems to be going well, so that's the only supported installation method now.
2017-09-14 13:34:52 -07:00
Soam Vasani 9d8a46e847 fix broken helm download command in instructions, again 2017-09-12 16:46:39 -07:00
Soam Vasani dca2915a7e fix broken helm download command in instructions 2017-09-12 16:45:33 -07:00
Soam VasaniandGitHub bc02d159f3 update readme with latest install instructions (#324) 2017-09-12 15:16:56 -07:00
Soam Vasani dc50ebb889 Release script bugfix 2017-09-11 20:11:06 -07:00
Soam Vasani e68872ba84 set versions to v0.2.1 2017-09-11 18:32:25 -07:00
Soam VasaniandGitHub 4287d14000 Upgrade tool for 0.1 -> 0.2.1 (#320)
Allows dumping v0.1 state to a json file and restoring it into a new v0.2.1 fission installation.

Usage guide is at: /Documentation/docs-site/content/upgrade-from-v0.1.md
2017-09-11 18:31:36 -07:00
Soam Vasani 787396e904 release script: replace existing binaries 2017-09-11 07:25:44 -07:00
Soam Vasani e7c8e5418b 0.2.1-rc2 docs version update 2017-09-10 12:29:39 -07:00
Soam VasaniandGitHub 951468006d Release automation script -- attach helm charts, tag env images (#318)
Remove yaml manipulation from release script, package up and attach helm charts.
Build, tag and push fetcher image and all environment runtimes.
2017-09-10 09:16:16 -07:00
Soam Vasani 98c2a0863f set version to 0.2.1-rc2 2017-09-10 00:36:50 -07:00
Soam Vasani 12d3ad44ce update helm chart urls 2017-09-08 23:28:39 -07:00
Soam Vasani 04eef11fce Set version to 0.2.1-rc in CLI, API and helm charts 2017-09-08 20:48:00 -07:00
Soam Vasani 12fce0baa5 Doc updates: base url, minor bugfixes 2017-09-08 20:36:31 -07:00
Soam Vasani cd73f3c6bb Parameterize logger nodeport; remove ui service 2017-09-08 20:19:32 -07:00
Soam Vasani 373716269b remove compiled hugo site 2017-09-08 20:09:37 -07:00
Soam Vasani cb861e72a9 doc theme 2017-09-08 19:13:41 -07:00
Soam Vasani f2a9f8a938 Install and upgrade guide updates 2017-09-08 19:12:16 -07:00
Soam Vasani 3a0ebdd93b futz with doc css 2017-09-08 19:12:04 -07:00
Soam Vasani 0b1b663f98 remove inadvertently created submodule 2017-09-08 19:05:28 -07:00
Soam VasaniandGitHub d590dcf4ef Hugo-based documentation site (#317)
Not much content yet; this is a start.
2017-09-08 16:47:59 -07:00
Soam VasaniandGitHub f2091d0d80 Move builds to package level (#297)
Introduce _Archives_ as a type to reference arbitrary blobs.

_Packages_ are a pair of Source and Deployment archives. Packages have an environment reference.

Functions reference a package. Multiple functions can reference the same package.
2017-09-08 14:19:39 -07:00
Ta-Ching ChenandSoam Vasani 9d7bd49338 Use latest function metadata to check cached function service. (#316)
Watch functions in the router and use that to trigger functionReferenceResolver cache invalidation.

We might want to rate-limit syncTriggers in a future change, since we might be triggering it more often than needed.
2017-09-08 13:53:02 -07:00
Soam VasaniandGitHub 45c766061a Storage service helm chart integration + bugfixes (#315)
Add storage service and a persistent volume claim to helm charts. A few bugfixes for the api proxy.
2017-09-08 04:49:14 -07:00
Moritz Grosch (LittleFox)andSoam Vasani 6142ac3648 Added perl environment (#311)
Perl runtime environment and example function.
2017-09-07 23:42:40 -07:00
410 changed files with 44548 additions and 1410 deletions
+3
View File
@@ -0,0 +1,3 @@
baseURL = "http://fission.io/docs/v0.2.1"
languageCode = "en-us"
title = "Fission: Serverless Functions for Kubernetes"
@@ -0,0 +1 @@
![fission](http://fission.io/img/fission-logo-whitebg.png)
@@ -0,0 +1,6 @@
## Fission Documentation
[Installation guide](install)
[Upgrade guide](upgrade-from-v0.1)
+182
View File
@@ -0,0 +1,182 @@
---
title: "Fission Installation Guide"
date: 2017-09-07T20:10:05-07:00
draft: false
---
Welcome! This guide will get you up and running with Fission on a
Kubernetes cluster.
### Cluster preliminaries
If you don't have a Kubernetes cluster, [here's a quick guide to set
one up](../kubernetessetup).
Let's ensure you have the Kubernetes CLI and Helm installed and
ready. If you already have helm, [skip ahead to the fission install](#install-fission).
#### Kubernetes CLI
Ensure you have the Kubernetes CLI.
You can get the Kubernetes CLI for OSX like this:
```
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
```
Or, for Linux:
```
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
```
Ensure you have access to a cluster; use kubectl to check your
Kubernetes version:
```
$ kubectl version
```
We need at least Kubernetes 1.6 (older versions may work, but we don't
test them).
#### Helm
Helm is an installer for Kubernetes. If you already use helm, [skip to
the next section](#install-fission).
First, you'll need the helm CLI:
On __OS X__:
```
$ curl -LO https://storage.googleapis.com/kubernetes-helm/helm-v2.6.1-darwin-amd64.tar.gz
$ tar xzf helm-v2.6.1-darwin-amd64.tar.gz
$ mv darwin-amd64/helm /usr/local/bin
```
On __Linux__:
```
$ curl -LO https://storage.googleapis.com/kubernetes-helm/helm-v2.6.1-linux-amd64.tar.gz
$ tar xzf helm-v2.6.1-linux-amd64.tar.gz
$ mv linux-amd64/helm /usr/local/bin
```
Next, install the Helm server on your Kubernetes cluster:
```
$ kubectl -n kube-system create sa tiller
$ kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
$ helm init --service-account tiller
```
(The first two commands are there to make sure that helm is allowed to
install stuff on Kubernetes, in the common case that your cluster has
role-based access control.)
### Install Fission
#### Minikube
```
$ helm install --namespace fission --set serviceType=NodePort https://github.com/fission/fission/releases/download/v0.2.1/fission-all-v0.2.1.tgz
```
The serviceType variable allows configuring the type of Kubernetes
service outside the cluster. You can use `ClusterIP` if you don't
want to expose anything outside the cluster.
#### Cloud hosted clusters (GKE, AWS, Azure etc.)
```
$ helm install --namespace fission https://github.com/fission/fission/releases/download/v0.2.1/fission-all-v0.2.1.tgz
```
#### Minimal version
The fission-all helm chart installs a full set of services including
the NATS message queue, influxDB for logs, etc. If you want a more
minimal setup, you can install the fission-core chart instead:
```
$ helm install --namespace fission https://github.com/fission/fission/releases/download/v0.2.1/fission-core-v0.2.1.tgz
```
### Install the Fission CLI
#### OS X
Get the CLI binary for Mac:
```
$ curl -Lo fission https://github.com/fission/fission/releases/download/v0.2.1/fission-cli-osx && chmod +x fission && sudo mv fission /usr/local/bin/
```
#### Linux
```
$ curl -Lo fission https://github.com/fission/fission/releases/download/v0.2.1/fission-cli-linux && chmod +x fission && sudo mv fission /usr/local/bin/
```
#### Windows
For Windows, you can use the linux binary on WSL. Or you can download
this windows executable: [fission.exe](https://github.com/fission/fission/releases/download/v0.2.1/fission-cli-windows.exe)
### Set environment vars
Set the FISSION_URL and FISSION_ROUTER environment variables.
FISSION_URL is used by the fission CLI to find the server.
(FISSION_ROUTER is only needed for the examples below to work.)
#### Minikube
If you're using minikube, use these commands:
```
$ export FISSION_URL=http://$(minikube ip):31313
$ export FISSION_ROUTER=$(minikube ip):31314
```
#### Cloud setups
Save the external IP addresses of controller and router services in
FISSION_URL and FISSION_ROUTER, respectively. Wait for services to
get IP addresses (check this with ```kubectl --namespace fission get
svc```). Then:
```
$ export FISSION_URL=http://$(kubectl --namespace fission get svc controller -o=jsonpath='{..ip}')
$ export FISSION_ROUTER=$(kubectl --namespace fission get svc router -o=jsonpath='{..ip}')
```
### Run an example
Finally, you're ready to use Fission!
```
$ fission env create --name nodejs --image fission/node-env:v0.2.1
$ curl -LO https://raw.githubusercontent.com/fission/fission/master/examples/nodejs/hello.js
$ fission function create --name hello --env nodejs --code hello.js
$ fission route create --method GET --url /hello --function hello
$ curl http://$FISSION_ROUTER/hello
Hello, world!
```
### What's next?
If something went wrong, we'd love to help -- please [drop by the
slack channel](http://slack.fission.io) and ask for help.
Check out the
[examples](https://github.com/fission/fission/tree/master/examples)
for some example functions.
@@ -0,0 +1,41 @@
---
title: "Kubernetes Quick Install"
date: 2017-09-07T20:10:05-07:00
draft: false
---
This is a quick guide to help you get started running Kubernetes on
your laptop (or on the cloud).
(This isn't meant as a production Kuberenetes guide; it's merely
intended to give you something quickly so you can try Fission on it.)
## Minikube
Minikube is the usual way to run Kubernetes on your laptop:
### Install and start Kubernetes on OSX:
```
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.16.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
$ minikube start
```
### Or, install and start Kubernetes on Linux:
```
$ curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.16.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
$ minikube start
```
## Google Container Engine
Alternatively, you can use [Google Container Engine's](https://cloud.google.com/container-engine/) free trial to
get a 3-node cluster. Hop over to [Google Cloud](https://cloud.google.com/container-engine/) to set that up.
@@ -0,0 +1,117 @@
---
title: "Upgrading from Fission v0.1 to v0.2.x"
date: 2017-09-08T16:26:29-07:00
draft: false
---
## TL;DR
The Fission API has changed significantly in this version. The new API is incompatible with the
old one. The CLI is compatible; if you wrote scripts using it, those should still work.
Below we describe a tool for migrating your state from your old install to the new one.
While this upgrade is going to be disruptive, we're going to do our best to make sure future
upgrades aren't as bad.
## Why is this so complicated?
For a couple of reasons, we wanted to switch to using Kubernetes resources (ThirdPartyResources
now, CustomResources in the next release) for storing Fission state: (a) it would allow users to
avoid management of another database and (b) Fission would fit better into the Kubernetes
ecosystem.
Concurrently with this change, we were also trying to make our versioning approach less
opinionated, so it would work with other tools.
Thirdly, we were also enabling build pipelines (v2 Environments).
These changes, especially the difference in versioning approach, made maintaining compatiblity not
worth the effort at this early stage of the project.
All that said, we want you to know that we care a lot about compatiblity, and we'll be more
rigorous about it from the beta release onwards.
## How to Upgrade
1. Get the v0.2.1 CLI
1. Get the Fission state from your old install
1. Install Fission v0.2.1
1. Restore Fission state into your new install
1. Destroy your old install
### Get the new CLI
#### OS X
```
$ curl -Lo fission https://github.com/fission/fission/releases/download/v0.2.1-rc/fission-cli-osx && chmod +x fission && sudo mv fission /usr/local/bin/
```
#### Linux
```
$ curl -Lo fission https://github.com/fission/fission/releases/download/v0.2.1-rc/fission-cli-linux && chmod +x fission && sudo mv fission /usr/local/bin/
```
#### Windows
For Windows, you can use the linux binary on WSL. Or you can download
this windows executable: [fission.exe](https://github.com/fission/fission/releases/download/v0.2.1-rc/fission-cli-windows.exe)
### Get Fission state from v0.1 install
```
fission --server <your V1 server> upgrade dump --file state.json
```
You can skip the --server argument if you have the environment
variable `$FISSION_URL` set to point at a v0.1 Fission server.
This will create a JSON file with all your fission state in the
current directory.
### Install the new version
Read the [install guide](../install). You can follow all of it, except that you will need to
ensure your two installs don't conflict. To do that, use separate namespaces and ensure nodeports
don't conflict. Install with a command similar to this:
```
helm install fission-all --namespace fission2 --set controllerPort=31303,routerPort=31304,natsStreamingPort=31305,functionNamespace=fission2-function
```
This installs fission in the `fission2` namespace and runs functions
in the `fission2-function` namespace.
### Restore your Fission state into Fission v0.2.1
```
fission upgrade restore --file state.json
```
This commands needs $FISSION_URL set to point to new fission installation.
It uses the file created in the first step. It doesn't modify state.json.
(Note that you can run this restore on any cluster; it doesn't have the be the same kubernetes
cluster as your old install.)
### Verify
How exactly you do this is up to you! But, at a minimum, run `fission
fn list` to check that all the functions you expect are there.
### Switch over
If you had exposed fission's router to the outside world, switch over to using the new install's router.
### Destroy your old install
Once you're no longer using the old install, you can destroy it by
deleting the namespaces that was installed in.
```
kubectl delete namespace fission fission-function
```
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,2 @@
.DS_Store
public/
@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2014 Grav
Copyright (c) 2016 MATHIEU CORNIC
Copyright (c) 2017 Valere JEANTET
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,34 @@
# Hugo docDock Theme
This repository contains a theme for [Hugo](https://gohugo.io/), based on great [Matcornic Learn theme](https://github.com/matcornic/hugo-theme-learn/).
Visit the [theme documentation](http://docdock.netlify.com/) to see what is going on. It is actually built with this theme.
# Main features
- Search
- **Unlimited menu levels**
- RevealJS presentation from markdown (embededed or fullscreen page)
- Attachments files
- List child pages
- Include segment of content from one page in another (Excerpt)
- Automatic next/prev buttons to navigate through menu entries
- Mermaid diagram
- Icons, Buttons, Alerts, Panels, Tip/Note/Info/Warning boxes
- Image resizing, shadow...
- Customizable look and feel
## Installation
Navigate to your themes folder in your Hugo site and use the following commands:
```
$ cd themes
$ git clone https://github.com/vjeantet/hugo-theme-docdock.git docdock
```
Check that your Hugo version is minimum `0.25` with `hugo version`.
![Overview](https://github.com/vjeantet/hugo-theme-docdock/raw/master/images/tn.png)
## Usage
- [Visit the documentation](http://docdock.netlify.com/)
@@ -0,0 +1,9 @@
+++
title= "{{ replace .TranslationBaseName "-" " " | title }}"
date= {{ .Date }}
description = ""
draft= true
+++
Lorem Ipsum.
Notice `draft` is set to true.
@@ -0,0 +1,46 @@
+++
title = "Slide title"
type="slide"
theme = "league"
[revealOptions]
transition= 'concave'
controls= true
progress= true
history= true
center= true
+++
# Slide 1
___
## Slide 1.1
- Turn off alarm
- Get out of bed
___
## Slide 1.2
- Eat eggs
- Drink coffee
---
# Slide 2
___
## Slide 2.1
- Eat spaghetti
- Drink wine
___
## Slide 2.2
- Get in bed
- Count sheep
@@ -0,0 +1,43 @@
baseURL = "/"
languageCode = "en-us"
DefaultContentLanguage = "en"
title = "Docdock"
theme = "hugo-theme-docdock"
themesdir = "../.."
[params]
editURL = "https://github.com/vjeantet/hugo-theme-docdock/edit/master/exampleSite/content/"
noHomeIcon = false # default is false
noSearch = false # default is false
showVisitedLinks = true # default is false
# themeStyle = "theme" # overide base css
themeVariant = "" # choose theme variant "green", "gold" , "gray", "blue" (default)
ordersectionsby = "weight" # ordersectionsby = "title"
[outputs]
home = [ "HTML", "RSS", "JSON"]
[[menu.shortcuts]]
pre = "<h3>More</h3>"
name = "<i class='fa fa-github'></i> Github repo"
identifier = "ds"
url = "https://github.com/vjeantet/hugo-theme-docdock"
weight = 10
[[menu.shortcuts]]
name = "<i class='fa fa-camera'></i> Showcases"
url = "/showcase"
weight = 11
[[menu.shortcuts]]
name = "<i class='fa fa-bookmark'></i> Hugo Documentation"
identifier = "hugodoc"
url = "https://gohugo.io/"
weight = 20
[[menu.shortcuts]]
name = "<i class='fa fa-bullhorn'></i> Credits"
url = "/credits"
weight = 30
@@ -0,0 +1,6 @@
+++
title = "header"
description = ""
date = "2017-04-24T18:36:24+02:00"
+++
DocDock Documentation
@@ -0,0 +1,47 @@
+++
title = "DocDock Theme for Hugo"
description = ""
date = "2017-04-24T18:36:24+02:00"
+++
# Hugo docDock theme
[Hugo-theme-docdock {{%icon fa-github%}}](https://github.com/vjeantet/hugo-theme-docdock) is a theme for Hugo, a fast and modern static website engine written in Go. Hugo is often used for blogs, **this theme is fully designed for documentation.**
This theme is a partial porting of the [Learn theme of matcornic {{%icon fa-github%}}](https://github.com/matcornic/hugo-theme-learn).
{{%panel%}}docDock works with a "page tree structure" to organize content : All contents are pages, which belong to other pages. [read more about this]({{%relref "content-organisation/_index.md"%}}) {{%/panel%}}
## Main features
* [Search]({{%relref "search/_index.md" %}})
* **Unlimited menu levels**
* [Generate RevealJS presentation]({{%relref "page-slide.md"%}}) from markdown (embededed or fullscreen page)
* Automatic next/prev buttons to navigate through menu entries
* [Image resizing, shadow...]({{%relref "create-page/page-images.md" %}})
* [Attachments files]({{%relref "shortcodes/attachments.md" %}})
* [List child pages]({{%relref "shortcodes/children/_index.md" %}})
* [Excerpt]({{%relref "shortcodes/excerpt.md"%}}) ! Include segment of content from one page in another
* [Mermaid diagram]({{%relref "shortcodes/mermaid.md" %}}) (flowchart, sequence, gantt)
* [Icons]({{%relref "shortcodes/icon.md" %}}), [Buttons]({{%relref "shortcodes/button.md" %}}), [Alerts]({{%relref "shortcodes/alert.md" %}}), [Panels]({{%relref "shortcodes/panel.md" %}}), [Tip/Note/Info/Warning boxes]({{%relref "shortcodes/notice.md" %}}), [Expand]({{%relref "shortcodes/expand.md" %}})
* [customizable look and feel]({{%relref "content-organisation/customize-style/_index.md"%}}), [theme variants]({{%relref "content-organisation/customize-style/theme-variants.md"%}})
![](https://raw.githubusercontent.com/vjeantet/hugo-theme-docdock/master/images/tn.png?width=33pc&classes=border,shadow)
## Contribute to this documentation
Feel free to update this content, just click the **Edit this page** link displayed on top right of each page, and pullrequest it
{{%alert%}}Your modification will be deployed automatically when merged.{{%/alert%}}
## Documentation website
This current documentation has been statically generated with Hugo with a simple command : `hugo -t docdock` -- source code is [available here at GitHub {{%icon fa-github%}}](https://github.com/vjeantet/hugo-theme-docDock)
{{% panel theme="success" header="Automated deployments" footer="Netlify builds, deploys, and hosts frontends." %}}
Automatically published and hosted thanks to [Netlify](https://www.netlify.com/).
Read more about [Automated HUGO deployments with Netlify](https://www.netlify.com/blog/2015/07/30/hosting-hugo-on-netlifyinsanely-fast-deploys/)
{{% /panel %}}
@@ -0,0 +1,138 @@
+++
title = "Content Organisation"
description = ""
weight = 20
+++
With **Hugo**, pages are the core of your site. Organize your site like any other Hugo project. **Magic occurs with the nested sections implemention done in v0.22 of hugo (congrats @bep)**.
With docdock, **Each content page composes the menu**, they shape the structure of your website.
To link pages to each other, place them in a folders hierarchy
```
content
├── level-one
│ ├── level-two
│ │ ├── level-three
│ │ │ ├── level-four
│ │ │ │ ├── _index.md
│ │ │ │ ├── page-4-a.md
│ │ │ │ ├── page-4-b.md
│ │ │ │ └── page-4-c.md
│ │ │ ├── _index.md
│ │ │ ├── page-3-a.md
│ │ │ ├── page-3-b.md
│ │ │ └── page-3-c.md
│ │ ├── _index.md
│ │ ├── page-2-a.md
│ │ ├── page-2-b.md
│ │ └── page-2-c.md
│ ├── _index.md
│ ├── page-1-a.md
│ ├── page-1-b.md
│ └── page-1-c.md
├── _index.md
└── page-top.md
```
{{%alert info %}} **_index.md** is required in each folder, it's your "folder home page"{{%/alert%}}
### Add header to a menu entry
in the page frontmatter, add a `head` param to insert any HTML code before the menu entry:
example to display a "Hello"
+++
title = "Github repo"
head ="<label>Hello</label> "
+++
### Add icon to a menu entry
in the page frontmatter, add a `pre` param to insert any HTML code before the menu label:
example to display a github icon
+++
title = "Github repo"
pre ="<i class='fa fa-github'></i> "
+++
![dsf](/menu-entry-icon.png?height=40px&classes=shadow)
<!-- ### Customize menu entry label
Add a `name` param next to `[menu.main]`
+++
[menu.main]
parent = ""
identifier = "repo"
pre ="<i class='fa fa-github'></i> "
name = "Github repo"
+++ -->
<!-- ### Create a page redirector
Add a `url` param next to `[menu.main]`
+++
[menu.main]
parent = "page"
identifier = "page-images"
weight = 23
url = "/shortcode/image/"
+++
{{%alert info%}}Look at the menu "Create Page/About images" which redirects to "Shortcodes/image{{%/alert%}}
-->
### Order sibling menu/page entries
in your frontmatter add `weight` param with a number to order.
+++
title="My page"
weight = 4
+++
{{%info%}}add `ordersectionsby = "title"` in your config.toml to order menu entries by title{{%/info%}}
### Hide a menu entry
in your frontmatter add `hidden=true` param.
+++
title="My page"
hidden = true
+++
### Unfolded menu entry by default
One or more menuentries can be displayed unfolded by default. (like the "Getting start" menu entry in this website)
in your frontmatter add `alwaysopen=true` param.
example :
```
title = "Getting start"
description = ""
weight = 1
alwaysopen = true
```
### Folder structure and file name
Content organization **is** your `content` folder structure.
### Homepage
Find out how to [customize homepage]({{%relref "homepage.md"%}})
@@ -0,0 +1,40 @@
+++
title = "Customize website look and feel"
Weight=3
+++
You can change the style and behavior of the theme without touching it.
* inject your own html, css or js into the page
* overide existing css or js with your own files
## Inject your HTML
### into the \<head\> part of each page :
Create a `custom-head.html` into a `layouts/partials` folder next to the content folder
> * content/
> * layouts/
> * partials/
> * custom-head.html
now feel free to add the JS, CSS, HTML code you want :)
### at the end of the body part of each page :
Create a `custom-footer.html` into a `layouts/partials` folder next to the content folder
> * content/
> * layouts/
> * partials/
> * custom-footer.html
now feel free to add the JS, CSS, HTML code you want :)
## overide existing CSS or JS
Create the matching file in your static folder, hugo will use yours instead of the theme's one.
Example :
create a theme.css and place it into `static/css/` to fully overide docdock's theme.css
@@ -0,0 +1,35 @@
+++
title = "Theme variants"
description = "change theme style/colors"
+++
In site configuration file, you can set a variant name of this theme to load a specific css, with different color specifications.
add a param `themeVariant = "VARIANT_NAME"` in the `[params]` part of config.toml file.
{{%info%}}Available variants change only colors at this moment{{%/info%}}
## Variant "gray"
```
[params]
themeVariant = "gray"
```
![green docdock](/variant-gray.png)
## Variant "gold"
```
[params]
themeVariant = "gold"
```
![gold docdock](/variant-gold.png)
## Variant "green"
```
[params]
themeVariant = "green"`
```
![green docdock](/variant-green.png)
@@ -0,0 +1,28 @@
+++
title = "Extra menu entries"
date = "2017-04-29T18:36:24+02:00"
Weight=2
+++
You can define additional menu entries in the navigation menu without any link to content.
Edit the website configuration `config.toml` and add a `[[menu.shortcuts]]` entry for each link your want to add.
Example from the current website, **note the `pre` param** which allows you to insert HTML code and used here to separate content's menu from this "static" menu
[[menu.shortcuts]]
pre = "<h3>More</h3>"
name = "<i class='fa fa-github'></i> Github repo"
identifier = "ds"
url = "https://github.com/vjeantet/hugo-theme-docdock"
weight = 1
[[menu.shortcuts]]
name = "<i class='fa fa-bookmark'></i> Hugo Documentation"
identifier = "hugodoc"
url = "https://gohugo.io/"
weight = 2
[{{%icon circle-arrow-right%}} Read more about hugo and menu here](https://gohugo.io/extras/menus/)
@@ -0,0 +1,12 @@
+++
title = "Logo placeholder"
description = ""
date = "2017-04-24T18:36:24+02:00"
Weight=1
+++
Create a `_header.md` page in content folder. Its content is what you get in the logo placeholder (top left of the screen).
{{%alert info%}}**Tip :** you can add a image, a combobox with links to other documentation....{{%/alert%}}
{{%alert info%}}**Tip 2 :** look at [ extra static menu]({{%relref "extramenu.md"%}}) if you want to add links to other website in this sidebar{{%/alert%}}
@@ -0,0 +1,54 @@
+++
title = "Create Page"
description = ""
date = "2017-04-24T18:36:24+02:00"
creatordisplayname = "Valere JEANTET"
creatoremail = "valere.jeantet@gmail.com"
lastmodifierdisplayname = "Valere JEANTET"
lastmodifieremail = "valere.jeantet@gmail.com"
tags = ["tag1","tag2"]
weight = 10
pre ="<i class='fa fa-edit'></i> "
+++
Hugo-theme-docdock defines two types of pages. _Default_ and _Slide_.
* **Default** is the common page like the current one you are reading.
* **Slide** is a page that use the full screen to display its markdown content as a [reveals.js presentation](http://lab.hakim.se/reveal-js/).
* **HomePage** is a special content that will be displayed as home page content.
To tell Hugo-theme-docdock to consider a page as a slide, just add a `type="slide"`in then frontmatter of your file. [{{%icon circle-arrow-right%}}read more on page as slide]({{%relref "page-slide.md"%}})
Hugo-theme-docdock provides archetypes to help you create this kind of pages.
## Front Matter
Each Hugo page has to define a Front Matter in yaml, toml or json.
Hugo-theme-docdock uses the following parameters on top of the existing ones :
+++
# Type of content, set "slide" to display it fullscreen with reveal.js
type="page"
# Creator's Display name
creatordisplayname = "Valere JEANTET"
# Creator's Email
creatoremail = "valere.jeantet@gmail.com"
# LastModifier's Display name
lastmodifierdisplayname = "Valere JEANTET"
# LastModifier's Email
lastmodifieremail = "valere.jeantet@gmail.com"
+++
## Ordering
Hugo provides a flexible way to handle order for your pages.
The simplest way is to use `weight` parameter in the front matter of your page.
[{{%icon circle-arrow-right%}}Read more on content organization]({{%relref "content-organisation/_index.md"%}})
@@ -0,0 +1,8 @@
+++
title = "Home page"
description = ""
date = "2017-04-28T18:36:24+02:00"
tags = ["tag1","tag2"]
+++
To tell Hugo-theme-docdock to consider a page as homepage's content, just create a content file named `_index.md` in content folder.
@@ -0,0 +1,48 @@
+++
title = "My Slide ! fullscreen"
date = "2017-04-24T18:36:24+02:00"
type="slide"
hidden=true
theme = "league"
[revealOptions]
transition= 'concave'
controls= true
progress= true
history= false
center= true
+++
# In the morning
___
## Getting up
- Turn off alarm
- Get out of bed
___
## Breakfast
- Eat eggs
- Drink coffee
---
# In the evening
___
## Dinner
- Eat spaghetti
- Drink wine
___
## Going to sleep
- Get in bed
- Count sheep
@@ -0,0 +1,28 @@
+++
title = "About images"
date = "2017-04-24T18:36:24+02:00"
+++
Images have a similar syntax to links but include a preceding exclamation point.
![agence](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg)
![agence](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg)
## Resizing image
Add HTTP parameters `width` and/or `height` to the link image to resize the image. Values are CSS values (default is `auto`).
![Hackathon](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg?height=80px)
![agence](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg?height=80px)
## Add CSS classes
Add a HTTP `classes` parameter to the link image to add CSS classes. `shadow` and `border` are available but you could define other ones.
![s](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg?classes=border,shadow)
![agence](https://github.com/vjeantet/vjeantet.fr/raw/master/static/images/sgthon/C.jpg?classes=border,shadow)
@@ -0,0 +1,114 @@
+++
title = "Present a Slide"
description = ""
date = "2017-04-24T18:36:24+02:00"
+++
A basic md content page can be rendered as a reveal.js presentation full screen.
{{%alert info%}}You can, also, **embed presentation in a page** as a small box, using the [revealjs]({{% relref "shortcodes/revealjs.md"%}}) shortcode in your md file.{{%/alert%}}
## Formating
Use your common Markdown syntax you use in Hugo, don't forget, you can put html tags too.
{{%notice info %}} Special syntax (in html comment) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things.
{{%/notice%}}
Please read the [{{%icon book%}} doc from hakimel](https://github.com/hakimel/reveal.js/#instructions)
## Options
In the frontmatter of your page file, set **type** and **revealOptions** params
Your content will be served as a fullscreen revealjs presentation and revealOptions will be used to ajust its behaviour.
+++
title = "Test slide"
type="slide"
theme = "league"
[revealOptions]
transition= 'concave'
controls= true
progress= true
history= true
center= true
+++
[read more about reveal options here](https://github.com/hakimel/reveal.js/#configuration)
## Slide Delimiters
When creating the content for your slideshow presentation within content markdown file you need to be able to distinguish between one slide and the next. This is achieved very simply using a convention within Markdown that indicates the start of each new slide.
As both horizontal and vertical slides are supported by reveal.js each has it's own unique delimiter.
To denote the start of a horizontal slide simply add the following delimiter in your Markdown:
---
To denote the start of a vertical slide simply add the following delimiter in your Markdown:
___
By using a combination of horizontal and vertical slides you can customize the navigation within your slideshow presentation. Typically vertical slides are used to present information below a top-level horizontal slide.
For example, a very simple slideshow presentation can be created as follows
```
+++
title = "test"
date = "2017-04-24T18:36:24+02:00"
type="slide"
theme = "league"
[revealOptions]
transition= 'concave'
controls= true
progress= true
history= true
center= true
+++
# In the morning
___
## Getting up
- Turn off alarm
- Get out of bed
___
## Breakfast
- Eat eggs
- Drink coffee
---
# In the evening
___
## Dinner
- Eat spaghetti
- Drink wine
___
## Going to sleep
- Get in bed
- Count sheep
```
[{{%icon expand%}}click here to view this page rendered]({{%relref "myslide.md"%}})
@@ -0,0 +1,34 @@
+++
title = "Credits"
description = "contributors and packages used by hugo-theme-docdock"
+++
## github contributors
{{%ghcontributors "https://api.github.com/repos/vjeantet/hugo-theme-docdock/contributors?per_page=100" %}}
### Other contributors
<div class="ghContributors">
<div>
<img src="https://avatars2.githubusercontent.com/u/394382?v=3" class="inline" width="32" height="32" style="height: 32px;height: 32px;margin-bottom:.25em; vertical-align:middle; ">
<label>@<a href="https://github.com/bep">bep</a></label>
<span class="contributions">supports and advices</span>
</div>
</div>
## Packages and libraries
* [Bootstrap](http://getbootstrap.com) - front-end framework
* [mermaid](https://knsv.github.io/mermaid) - generation of diagram and flowchart from text in a similar manner as markdown
* [font awesome](http://fontawesome.io/) - the iconic font and CSS framework
* [jQuery](https://jquery.com) - The Write Less, Do More, JavaScript Library
* [lunr](https://lunrjs.com) - Lunr enables you to provide a great search experience without the need for external, server-side, search services...
* [horsey](https://bevacqua.github.io/horsey/) - Progressive and customizable autocomplete component
* [clipboard.js](https://zenorocha.github.io/clipboard.js) - copy text to clipboard
* [highlight.js](https://highlightjs.org) - Javascript syntax highlighter
* [modernizr](https://modernizr.com) - A JavaScript toolkit that allows web developers to use new CSS3 and HTML5 features while maintaining a fine level of control over browsers that don't support
* [reveal-js](http://lab.hakim.se/reveal-js) - The HTML Presentation Framework
## Tooling
* [Netlify](https://www.netlify.com) - Continuous deployement and hosting of this documentation
* [Hugo](https://gohugo.io/) {{%icon "fa-smile-o"%}}
@@ -0,0 +1,12 @@
+++
title = "Getting start"
description = ""
weight = 1
alwaysopen = true
+++
## Requirements
Download [Hugo binary](https://gohugo.io/overview/installing/) for your OS (Windows, Linux, Mac) : its that simple
{{%children style="h2" description="true"%}}
@@ -0,0 +1,26 @@
+++
title = "Configuration"
description = ""
weight = 2
+++
When building the website, you can set a theme by using `--theme` option. We suggest you to edit your configuration file and set the theme by default. Example with `config.toml` format.
<!--more-->
```
theme = "docdock"
```
## Search index generation
Add the follow line in the same `config.toml` file.
```
[outputs]
home = [ "HTML", "RSS", "JSON"]
```
LUNRJS search index file will be generated on content changes.
## Your website's content
Find out how to [create]({{%relref "create-page/_index.md"%}}) and [organize your content]({{%relref "content-organisation/_index.md"%}}) quickly and intuitively.
@@ -0,0 +1,31 @@
+++
title = "Installation"
description = ""
weight = 1
+++
{{% alert theme="warning" %}}HUGO **v0.25** minimum required to use this theme{{%/alert%}}
The following steps are here to help you initialize your new website. If you dont know Hugo at all, we strongly suggest you to train by following this [great documentation for beginners](https://gohugo.io/overview/quickstart/).
<!--more-->
## Create Your Documentation
Hugo provides a `new` command to create a new website.
$ hugo new site <new_website>
## Install The Theme
Install the **Hugo-theme-docdock** theme by following this
Switch into the themes directory and download the theme
$ cd themes
$ git clone https://github.com/vjeantet/hugo-theme-docdock.git docdock
Alternatively, you can [{{%icon download%}} download the theme as .zip](https://github.com/vjeantet/hugo-theme-docdock/archive/master.zip) file and extract it in the themes directory
## Basic Configuration
[Follow instructions here]({{%relref "configuration.md"%}})
@@ -0,0 +1,11 @@
+++
title = "About the Search Engine"
description = ""
weight = 40
+++
**Nothing to do on your side. :-)**
Docdock theme uses the last improvement available in hugo version 20+ to generate a json index file ready to be consumed by lunr.js javascript search engine.
{{%note%}}hugo generate lunrjs index.json at the root of `public` folder. <br/>When you build the site with `hugo server`, hugo generates it internally and of course it don't show up in the filesystem{{%/note%}}
@@ -0,0 +1,10 @@
+++
title = "Shortcodes"
description = ""
date = "2017-04-24T18:36:24+02:00"
weight = 30
+++
A bunch of Shortcodes are available with this theme :
{{%children style="h2" description="true" %}}
@@ -0,0 +1,30 @@
+++
title = "alert"
description = "The alert shortcode allows you to highlight information in your page."
+++
The `alert` shortcode allow you to highlight information in your page. They create a colored box surrounding your text, like this:
{{%alert%}}**This is** an alert !{{%/alert%}}
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| theme | `info` | `success`, `info`,`warning`,`danger` |
{{%alert info%}}
**Tips :** setting only the theme as argument works too :
`{{%/*alert warning*/%}}` instead of `{{%/*alert theme="warning"*/%}}`
{{%/alert%}}
## Basic examples
{{%/* alert theme="info" */%}}**this** is a text{{%/* /alert */%}}
{{%/* alert theme="success" */%}}**Yeahhh !** is a text{{%/* /alert */%}}
{{%/* alert theme="warning" */%}}**Be carefull** is a text{{%/* /alert */%}}
{{%/* alert theme="danger" */%}}**Beware !** is a text{{%/* /alert */%}}
{{% alert theme="info"%}}**this** is an info{{% /alert %}}
{{% alert theme="success" %}}**Yeahhh !** is an success{{% /alert %}}
{{% alert theme="warning" %}}**Be carefull** is a warning{{% /alert %}}
{{% alert theme="danger" %}}**Beware !** is a danger{{% /alert %}}
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@@ -0,0 +1,59 @@
+++
title = "attachments"
description = "The Attachments shortcode displays a list of files attached to a page."
+++
The Attachments shortcode displays a list of files attached to a page.
Example :
{{%alert success%}}{{%attachments /%}}{{%/alert%}}
## Usage
The shortcurt lists files found in a **specific folder**.
Currently, it support two implementations for pages
1. If your page is a markdown file, attachements must be place in a **folder** named like your page and ending with **.files**.
> * content
> * _index.md
> * page.files
> * attachment.pdf
> * page.md
2. If your page is a **folder**, attachements must be place in a nested **'files'** folder.
> * content
> * _index.md
> * page
> * index.md
> * files
> * attachment.pdf
That's all !
{{%alert info%}}**Tip** : Look at this documentation source code on github{{%/alert%}}
### parameters
| Parameter | Default | Description |
|:--|:--|:--|
| title | "Attachments" | List's title |
| pattern | ".*" | A regular expressions, used to filter the attachments by file name. <br/><br/>{{%alert warning%}}The **pattern** parameter value must be [regular expressions](https://en.wikipedia.org/wiki/Regular_expression).
For example:
* To match a file suffix of 'jpg', use **.*jpg** (not *.jpg).
* To match file names ending in 'jpg' or 'png', use **.*(jpg|png)**
{{%/alert%}}|
## Demo
### List of attachments ending in pdf or mp4
{{%/*attachments title="Related files" pattern=".*(pdf|mp4)"/*/%}}
renders as
{{%attachments title="Related files" pattern=".*(pdf|mp4)"/%}}
@@ -0,0 +1,37 @@
+++
title = "button"
description = "Display an actionable button in your page."
+++
Display an actionable button in your page.
{{<button align="center" href="#" theme="warning" >}} This is a warning button {{< /button >}}
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| href | "" | The location href to link to |
| align | "center" | horizontal align button on page |
| theme | `primary` | `default`, `primary` , `success`,`info`,`warning`,`danger` |
The inner text you place in short code will be displayed as the _button text_
## Demo
{{</* button href="https://google.com" */>}} go to google {{</* /button */>}}
{{</* button href="https://google.com" theme="success" */>}} Success {{</* /button */>}}
{{</* button href="https://google.com" theme="info" */>}} Info {{</* /button */>}}
{{</* button href="https://google.com" theme="warning" */>}} Warning {{</* /button */>}}
{{</* button href="https://google.com" theme="danger" */>}} Danger ! {{</* /button */>}}
{{</* button href="https://google.com" theme="default" */>}} Danger ! {{</* /button */>}}
{{<button href="https://google.com" >}} go to google {{< /button >}}
{{<button href="https://google.com" theme="success">}} Success {{< /button >}}
{{<button href="https://google.com" theme="info">}} Info {{< /button >}}
{{<button href="https://google.com" theme="warning">}} Warning {{< /button >}}
{{<button href="https://google.com" theme="danger">}} Danger ! {{< /button >}}
{{<button href="https://google.com" theme="default">}} Danger ! {{< /button >}}
@@ -0,0 +1,48 @@
+++
title = "children"
description = "List the child pages of a page"
+++
Use the children shortcode to list the child pages of a page and the further descendants (children's children). By default, the shortcode displays links to the child pages.
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| page | _current_ | Specify the page name (section name) to display children for |
| style | "li" | Choose the style used to display descendants. It could be any HTML tag name |
| showhidden | "false" | When true, child pages hidden from the menu will be displayed |
| description | "false" | Allows you to include a short text under each page in the list.<br/>when no description exists for the page, children shortcode takes the first 70 words of your content. [read more info about summaries on gohugo.io](https://gohugo.io/content/summaries/) |
| depth | 1 | Enter a number to specify the depth of descendants to display. For example, if the value is 2, the shortcode will display 2 levels of child pages. {{%alert success%}}**Tips:** set 999 to get all descendants{{%/alert%}}|
| sort | none | Sort Children By<br><li><strong>Weight</strong> - to sort on menu order</li><li><strong>Name</strong> - to sort alphabetically on menu label</li><li><strong>Identifier</strong> - to sort alphabetically on identifier set in frontmatter</li><li><strong>URL</strong> - URL</li> |
## Demo
{{%/* children */%}}
{{%children %}}
{{%/* children description="true" */%}}
{{%children description="true" %}}
{{%/* children depth="3" showhidden="true" */%}}
{{% children depth="3" showhidden="true" %}}
{{%/* children style="h2" depth="3" description="true" */%}}
{{% children style="h2" depth="3" description="true" %}}
{{%/* children style="div" depth="999" */%}}
{{% children style="div" depth="999" %}}
@@ -0,0 +1,6 @@
+++
title = "page 1"
description = "This is a demo child page"
+++
This is a demo child page
@@ -0,0 +1,6 @@
+++
title = "page 1-1"
description = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod"
+++
This is a demo child page
@@ -0,0 +1,6 @@
+++
title = "page 1-1-1"
description = "This is a demo child page"
+++
This is a demo child page
@@ -0,0 +1,6 @@
+++
title = "page 1-1-1-1"
description = "This is a demo child page"
+++
This is a demo child page
@@ -0,0 +1,6 @@
+++
title = "page 1-1-1-1-1"
description = "This is a demo child page"
+++
This is a demo child page
@@ -0,0 +1,11 @@
+++
title = "page 2"
description = ""
+++
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
@@ -0,0 +1,6 @@
+++
title = "page test 3"
description = "This is a page test"
+++
This is a test 3 demo child page
@@ -0,0 +1,6 @@
+++
title = "page 3"
description = "This is a demo child page"
+++
This is a demo child page
@@ -0,0 +1,7 @@
+++
title = "page 4"
description = "This is a demo child page"
hidden=true
+++
This is a demo child page, not displayed in the menu
@@ -0,0 +1,6 @@
+++
title = "page test"
description = "This is a page test"
+++
This is a test demo child page
@@ -0,0 +1,22 @@
+++
title = "excerpt-include"
description = ""
+++
The Excerpt Include shortcode is used to display 'excerpted' (that is, a segment of) content from one page in another.
Before you can use this shortcode, the excerpt must have been defined using the Excerpt shortcode. {{%alert info%}}Note that you can have more than one Excerpt Include shortcode on a page (although you can have only one Excerpt shortcode on a page).{{%/alert%}}
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| filename | **required** | Type the filename of the page that contains the excerpt to be displayed.<br/>Path is relative to the content folder|
| panel | none | Determines whether docDock will display a panel around the excerpted content. The panel includes the given panel's value and the border of the panel. By default, the panel and title are not shown.|
## Demo
The paragraph below shows an example of an Excerpt Include shortcode, containing content from an excerpt which we have defined on the Excerpt shortcode page. On the Excerpt Include shortcode below, we have set the options to show both the title of the page and the panel surrounding the content.
{{%/*excerpt-include filename="shortcodes/excerpt.md" panel="From excerpt page" /*/%}}
{{%excerpt-include filename="shortcodes/excerpt.md" panel="From excerpt page" /%}}
@@ -0,0 +1,39 @@
+++
title = "excerpt"
description = "The Excerpt shortcode is used to mark a part of a page's content for re-use."
+++
The Excerpt shortcode is used to mark a part of a page's content for re-use. Defining an excerpt enables other shortcodes, such as the excerpt-include shortcode, to display the marked content elsewhere.
{{%alert warning%}}You can only define one excerpt per page. In other words, you can only add the Excerpt shortcode once to a page.{{%/alert%}}
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| hidden | "false" | Controls whether the page content contained in the Excerpt shortcode placeholder is displayed on the page.{{%alert warning%}}Note that this option affects only the page that contains the Excerpt shortcode. It does not affect any pages where the content is reused.{{%/alert%}} |
## Demo
{{%/*excerpt*/%}}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation **ullamco** laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in _reprehenderit in voluptate_
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
{{%/* /excerpt*/%}}
{{%excerpt%}}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation **ullamco** laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in _reprehenderit in voluptate_
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
{{% /excerpt%}}
{{%alert info%}}See re use example with [excerpt-include shortcode]({{%relref "shortcodes/excerpt-include.md"%}}){{%/alert%}}
@@ -0,0 +1,41 @@
+++
title = "expand"
description = "Displays an expandable/collapsible section of text on your page"
+++
The Expand shortcode displays an expandable/collapsible section of text on your page.
Here is an example
{{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{%/expand%}}
## Usage
this shortcode takes exactly one optional parameter to define the text that appears next to the expand/collapse icon. (default is "Expand me...")
{{%/*expand "Is this docdock theme rocks ?" */%}}Yes !.{{%/* /expand*/%}}
{{%expand "Is this docdock theme rocks ?" %}}Yes !{{% /expand%}}
# Demo
{{%/*expand*/%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{%/* /expand*/%}}
{{%expand%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{% /expand%}}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,98 @@
+++
title = "mermaid"
description = ""
+++
## Flowchart example
{{%expand "Show code ..."%}}
{{</*mermaid align="left"*/>}}
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
{{</* /mermaid */>}}
{{%/expand%}}
{{<mermaid align="left">}}
graph LR;
A[Hard edge] -->|Link text| B(Round edge)
B --> C{Decision}
C -->|One| D[Result one]
C -->|Two| E[Result two]
{{< /mermaid >}}
## Sequence example
{{%expand "Show code ..."%}}
{{</*mermaid*/>}}
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail...
John-->Alice: Great!
John->Bob: How about you?
Bob-->John: Jolly good!
{{</* /mermaid */>}}
{{%/expand%}}
{{<mermaid>}}
sequenceDiagram
participant Alice
participant Bob
Alice->>John: Hello John, how are you?
loop Healthcheck
John->John: Fight against hypochondria
end
Note right of John: Rational thoughts <br/>prevail...
John-->Alice: Great!
John->Bob: How about you?
Bob-->John: Jolly good!
{{< /mermaid >}}
## GANTT Example
{{%expand "Show code ..."%}}
{{</*mermaid*/>}}
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
{{</* /mermaid */>}}
{{%/expand%}}
{{<mermaid>}}
gantt
dateFormat YYYY-MM-DD
title Adding GANTT diagram functionality to mermaid
section A section
Completed task :done, des1, 2014-01-06,2014-01-08
Active task :active, des2, 2014-01-09, 3d
Future task : des3, after des2, 5d
Future task2 : des4, after des3, 5d
section Critical tasks
Completed task in the critical line :crit, done, 2014-01-06,24h
Implement parser and jison :crit, done, after des1, 2d
Create tests for parser :crit, active, 3d
Future task in critical line :crit, 5d
Create tests for renderer :2d
Add to mermaid :1d
{{</mermaid>}}
@@ -0,0 +1,61 @@
+++
title = "notice"
description = "Disclaimers to help you structure your page"
+++
The notice shortcode shows 4 types of disclaimers to help you structure your page.
## Note
{{%/* notice note */%}}
A notice disclaimer
{{%/* /notice */%}}
renders as
{{% notice note %}}
A notice disclaimer
{{% /notice %}}
## Info
{{%/* notice info */%}}
An information disclaimer
{{%/* /notice */%}}
renders as
{{% notice info %}}
An information disclaimer
{{% /notice %}}
## Tip
{{%/* notice tip */%}}
A tip disclaimer
{{%/* /notice */%}}
renders as
{{% notice tip %}}
A tip disclaimer
{{% /notice %}}
## Warning
{{%/* notice warning */%}}
An warning disclaimer
{{%/* /notice */%}}
renders as
{{% notice warning %}}
An warning disclaimer
{{% /notice %}}
@@ -0,0 +1,60 @@
+++
title = "panel"
description = "Allow you to highlight information or put it in a box."
+++
{{% panel theme="success" header="The panel shortcode" %}}Allow you to highlight information or put it in a box. They create a colored box surrounding your text{{% /panel %}}
## Usage
| Parameter | Default | Description |
|:--|:--|:--|
| header | none | The title of the panel. If specified, this title will be displayed in its own header row. |
| footer | none | the footer of the panel. If specified, this text will be displayed in its own row |
| theme | `primary` | `default`,`primary`,`info`,`success`,`warning`,`danger` |
## Basic example
By default :
{{%/* panel */%}}this is a panel text{{%/* /panel */%}}
{{%panel%}}this is a panel text{{%/panel%}}
## Panel with heading
Easily add a heading container to your panel with `header` parameter. You may apply any theme.
{{%/* panel theme="danger" header="panel title" */%}}this is a panel text{{%/* /panel */%}}
{{% panel theme="danger" header="panel title" %}}this is a panel text{{% /panel %}}
{{%/* panel theme="success" header="panel title" */%}}this is a panel text{{%/* /panel */%}}
{{% panel theme="success" header="panel title" %}}this is a panel text{{% /panel %}}
## Panel with footer
Wrap a secondary text in footer.
{{%/* panel footer="panel footer" */%}}Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.{{%/* /panel */%}}
{{% panel footer="panel footer" %}}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
{{% /panel %}}
## Themes
{{% panel theme="success" header="Success theme" %}}this is a panel text{{% /panel %}}
{{% panel theme="default" header="default theme" %}}this is a panel text{{% /panel %}}
{{% panel theme="primary" header="primary theme" %}}this is a panel text{{% /panel %}}
{{% panel theme="info" header="info theme" %}}this is a panel text{{% /panel %}}
{{% panel theme="warning" header="warning theme" %}}this is a panel text{{% /panel %}}
{{% panel theme="danger" header="danger theme" %}}this is a panel text{{% /panel %}}
@@ -0,0 +1,74 @@
+++
title = "revealjs"
slug = "revealjs"
description = "present content as a reveal.js slide"
+++
This shortcode will format the enclosed markdow to render it with [reveal.js](http://lab.hakim.se/reveal-js/) at runtime (client-side)
Read more on [revealjs github repo](https://github.com/hakimel/reveal.js/#markdown).
## Usage
`revealjs` can use the following named parameters :
* theme
* transition
* controls
* progress
* history
* center
{{%warning title="Important" %}}Even if the enclosed content is a mardown, use `<` shortcode notation instead of the `%` notation {{%/warning %}}
### Content formating and slide delimiters
[read more on this here]({{% relref "page-slide.md"%}})
## Demo
{{<revealjs theme="moon" progress="true">}}
# In the morning
___
## Getting up
- Turn off alarm
- Get out of bed
___
## Breakfast
- Eat eggs
- Drink coffee
---
# In the evening
___
## Dinner
- Eat spaghetti
- Drink wine
___
## Going to sleep
- Get in bed
- Count sheep
{{</revealjs>}}
## Source :
* [{{%icon "sunglasses" %}} click here to view raw content](https://raw.githubusercontent.com/vjeantet/hugo-theme-docdock/master/exampleSite/content/shortcodes/revealjs.md)
editURL
@@ -0,0 +1,11 @@
+++
title = "Docdock-built Sites"
description = "Hugo-built Sites with docdock theme"
+++
#### [https://invincible.site/](https://invincible.site/) by [@shazic](https://github.com/shazic)
![https://invincible.site/](/showcase/invincible.site.png?height=150&classes=border,shadow)
@@ -0,0 +1,10 @@
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-79101-13', 'auto');
ga('send', 'pageview');
</script>
@@ -0,0 +1,13 @@
<center>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/vjeantet/hugo-theme-docdock/archive/master.zip" data-icon="octicon-cloud-download" aria-label="Download vjeantet/hugo-theme-docdock on GitHub">Download</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/vjeantet/hugo-theme-docdock" data-icon="octicon-star" data-show-count="false" aria-label="Star vjeantet/hugo-theme-docdock on GitHub">Star</a>
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/vjeantet/hugo-theme-docdock/fork" data-icon="octicon-repo-forked" data-show-count="true" aria-label="Fork vjeantet/hugo-theme-docdock on GitHub">Fork</a>
</center>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
@@ -0,0 +1,31 @@
<style type="text/css">
.ghContributors{
display:flex;
flex-flow: wrap;
align-content: flex-start
}
.ghContributors > div{
width: 50% ;
display: inline-flex;
margin-bottom: 5px;
}
.ghContributors > div label{
padding-left: 4px ;
}
.ghContributors > div span{
font-size: x-small;
padding-left: 4px ;
}
</style>
<div class="ghContributors">
{{ $url := .Get 0 }}
{{ range getJSON $url }}
<div>
<img src="{{.avatar_url}}" class="inline" width="32" height="32" style="height: 32px;height: 32px;margin-bottom:.25em; vertical-align:middle; ">
<label><a href="{{.html_url}}">@{{.login}}</a></label>
<span class="contributions">{{.contributions}} commits</span>
</div>
{{ end }}
</div>
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

@@ -0,0 +1,35 @@
[create-header-md]
other = "Create a _header.md to customize this"
[Search-placeholder]
other = "Search..."
[Clear-History]
other = "Clear History"
[Page]
other = "Page"
[Next-Pages]
other = "Next Pages"
[Previous-Pages]
other = "Previous Pages"
[pagination-on]
other = "of"
[Attachments-label]
other = "Attachments"
[title-404]
other = "Error"
[message-404]
other = "Woops. Looks like this page doesn't exist."
[Go-to-homepage]
other = "Go to homepage"
[Edit-this-page]
other = "Edit page"
@@ -0,0 +1,35 @@
[create-header-md]
other = "Créez un fichier _header.md pour personaliser cet encart"
[Search-placeholder]
other = "Rechercher..."
[Clear-History]
other = "Supprimer historique"
[Page]
other = "Page"
[Next-Pages]
other = "Pages suivantes"
[Previous-Pages]
other = "Pages précédentes"
[pagination-on]
other = "sur"
[Attachments-label]
other = "Documents attachés"
[title-404]
other = "Erreur"
[message-404]
other = "Woops. Looks like this page doesn't exist."
[Go-to-homepage]
other = "Vers la page d'accueil"
[Edit-this-page]
other = "Modifier"
@@ -0,0 +1,35 @@
[create-header-md]
other = "Opprett en _header.md for å tilpasse denne"
[Search-placeholder]
other = "Søk..."
[Clear-History]
other = "Fjern historikk"
[Page]
other = "Side"
[Next-Pages]
other = "Neste"
[Previous-Pages]
other = "Forrige"
[pagination-on]
other = "av"
[Attachments-label]
other = "Vedlegg"
[title-404]
other = "Feil"
[message-404]
other = "Ups... Ser ikke ut som denne siden eksisterer."
[Go-to-homepage]
other = "Gå til hovedsiden"
[Edit-this-page]
other = "Editer"
Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

@@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="en" class="js csstransforms3d">
<head>
<meta charset="utf-8"> {{ partial "meta.html" . }}
<link rel="shortcut icon" href="{{"images/favicon.png" | relURL}}" type="image/x-icon" />
{{ .Scratch.Add "title" "" }}{{ if eq .Site.Data.titles .Title }}{{ .Scratch.Set "title" (index .Site.Data.titles .Title).title }}{{ else }}{{ .Scratch.Set "title" .Title}}{{end}}
<title>{{ .Scratch.Get "title" }}</title>
<link href="{{"css/nucleus.css" | relURL}}" rel="stylesheet">
<link href="{{"css/font-awesome.min.css" | relURL}}" rel="stylesheet">
<link href="{{"css/hybrid.css" | relURL}}" rel="stylesheet">
<link href="{{"css/featherlight.min.css" | relURL}}" rel="stylesheet">
<link href="{{"css/theme.css" | relURL}}" rel="stylesheet">
<style type="text/css">
:root #header + #content > #left > #rlblock_left {
display: none !important;
}
p,
li,
ul {
text-align: center
}
ul {
list-style-type: none;
}
</style>
{{ partial "custom-head.html" . }}
</head>
<body>
<body class="" data-url="/">
<section id="body" style="margin-left:0px;">
<div id="overlay"></div>
<div id="chapter">
<div id="body-inner">
<h1>{{T "title-404"}}</h1>
<p>
</p>
<p>{{T "message-404"}}</p>
<p></p>
<p><a href="{{.Site.BaseURL}}">{{T "Go-to-homepage"}}</a></p>
<p><img src="{{"images/gopher-404.jpg" | relURL}}" style="width:50%"></img></p>
</div>
</div>
</section>
</body>
</html>
@@ -0,0 +1,25 @@
<article class="post {{ .Section }}">
<header class="post-header">
<h2 class="post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
</header>
<section class="post-excerpt">
<p>{{ .Summary }} <a class="read-more" href="{{.RelPermalink}}">&raquo;</a></p>
</section>
<footer class=" footline" >
{{with .Params.LastModifierDisplayName}}
<i class='fa fa-user'></i> <a href="mailto:{{ $.Params.LastModifierEmail }}">{{ . }}</a> {{with $.Date}} <i class='fa fa-calendar'></i> {{ .Format "02/01/2006" }}{{end}}
{{end}}
{{if .Params.tags }}
{{ range $index, $tag := .Params.tags }}
<a class="label label-default" href="{{$.Site.BaseURL}}tags/{{ $tag | urlize }}/">{{ $tag }}</a>
{{ end }}
{{end}}
</footer>
</article>
@@ -0,0 +1,29 @@
{{ partial "header.html" . }}
{{ .Content }}
<footer class=" footline" >
{{with .Params.LastModifierDisplayName}}
<i class='fa fa-user'></i> <a href="mailto:{{ $.Params.LastModifierEmail }}">{{ . }}</a> {{with $.Date}} <i class='fa fa-calendar'></i> {{ .Format "02/01/2006" }}{{end}}
</div>
{{end}}
</footer>
{{if not .Content }}
{{ $paginator := .Paginator }}
<div class="extra-pagination inner">
{{ partial "pagination.html" $paginator }}
</div>
{{ range $index, $page := $paginator.Pages }}
{{ .Render "li" }}
{{ end }}
<div style="margin-bottom:2rem"></div>
{{ partial "pagination.html" $paginator }}
{{end}}
{{ partial "footer.html" . }}
@@ -0,0 +1,13 @@
{{ partial "header.html" . }}
{{ .Content }}
<footer class=" footline" >
{{with .Params.LastModifierDisplayName}}
<i class='fa fa-user'></i> <a href="mailto:{{ $.Params.LastModifierEmail }}">{{ . }}</a> {{with $.Date}} <i class='fa fa-calendar'></i> {{ .Format "02/01/2006" }}{{end}}
</div>
{{end}}
</footer>
{{ partial "footer.html" . }}
@@ -0,0 +1,30 @@
{{ partial "header.html" . }}
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle=""><i class="fa fa-bars"></i> navigation</a>
</span>
{{if .Site.Home.Content }}
{{.Site.Home.Content}}
{{else}}
{{if eq .Site.Language.Lang "fr"}}
<h1>Personaliser la page d'accueil</h1>
<p>
Le site fonctionne. Ne pas oublier de personaliser cette page avec votre propre contenu. 2 façons de faire :
</p>
<ul>
<li><b>1. </b> Créer un fichier _index.md dans le dossier content</li>
<li><b>2. </b> Configurer le serveur http pour rediriger automatiquement la homepage vers la page de votre choix dans le site</li>
</ul>
{{else}}
<h1>Customize your own home page</h1>
<p>
The site is working. Don't forget to customize this homepage with your own. You typically have 2 choices :
</p>
<ul>
<li><b>1. </b> Create an _index.md document in the content folder</li>
<li><b>2. </b> Configure your server to automatically redirect this home page to one of your documentation pages</li>
</ul>
{{end}}
<p><i class="fa fa-heart fa-4x"></i></p>
{{ end }}
{{ partial "footer.html" . }}
@@ -0,0 +1,12 @@
[{{ range $index, $page := .Site.Pages }}
{{- if ne $page.Type "json" -}}
{{- if and $index (gt $index 0) -}},{{- end }}
{
"uri": "{{ $page.Permalink }}",
"title": "{{ htmlEscape $page.Title}}",
"tags": [{{ range $tindex, $tag := $page.Params.tags }}{{ if $tindex }}, {{ end }}"{{ $tag| htmlEscape }}"{{ end }}],
"description": "{{ htmlEscape .Description}}",
"content": {{$page.Plain | jsonify}}
}
{{- end -}}
{{- end -}}]
@@ -0,0 +1 @@
<!-- Partial intended to be overwritten for content footers like commenting systems -->
@@ -0,0 +1 @@
<!-- Partial intended to be overwritten to add javacript -->
@@ -0,0 +1 @@
<!-- Partial intended to be overwritten to add CSS -->
@@ -0,0 +1,62 @@
{{ partial "custom-content-footer.html" . }}
</div>
</div>
<div id="navigation">
<!-- Next prev page -->
{{ $currentNode := . }}
{{ template "menu-nextprev" dict "menu" .Site.Home "currentnode" $currentNode }}
{{ define "menu-nextprev" }}
{{$currentNode := .currentnode }}
{{ if ne .menu.Params.hidden true}}
{{if hasPrefix $currentNode.URL .menu.URL }}
{{ $currentNode.Scratch.Set "NextPageOK" "OK" }}
{{ $currentNode.Scratch.Set "prevPage" ($currentNode.Scratch.Get "prevPageTmp") }}
{{else}}
{{if eq ($currentNode.Scratch.Get "NextPageOK") "OK"}}
{{ $currentNode.Scratch.Set "NextPageOK" nil }}
{{ $currentNode.Scratch.Set "nextPage" .menu }}
{{end}}
{{end}}
{{ $currentNode.Scratch.Set "prevPageTmp" .menu }}
{{ $currentNode.Scratch.Set "pages" .menu.Pages }}
{{ if .menu.IsHome}}
{{ $currentNode.Scratch.Set "pages" .menu.Sections }}
{{ else if .menu.Sections}}
{{ $currentNode.Scratch.Set "pages" (.menu.Pages | union .menu.Sections) }}
{{end}}
{{ $pages := ($currentNode.Scratch.Get "pages") }}
{{ range $pages.ByWeight }}
{{ template "menu-nextprev" dict "menu" . "currentnode" $currentNode }}
{{end}}
{{ end }}
{{ end }}
{{with ($.Scratch.Get "prevPage")}}
<a class="nav nav-prev" href="{{.URL}}" title="{{.Title}}"> <i class="fa fa-chevron-left"></i></a>
{{end}}
{{with ($.Scratch.Get "nextPage")}}
<a class="nav nav-next" href="{{.URL}}" title="{{.Title}}" style="margin-right: 0px;"><i class="fa fa-chevron-right"></i></a>
{{end}}
</div>
</section>
<div style="left: -1000px; overflow: scroll; position: absolute; top: -1000px; border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;">
<div style="border: none; box-sizing: content-box; height: 200px; margin: 0px; padding: 0px; width: 200px;"></div>
</div>
{{ partial "scripts.html" . }}
{{ partial "custom-footer.html" . }}
</body>
</html>
@@ -0,0 +1,88 @@
<!DOCTYPE html>
<html lang="{{ .Page.Language | default "en" }}" class="js csstransforms3d">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
{{ .Hugo.Generator }}
{{ partial "meta.html" . }}
<title>{{ .Title }} :: {{ .Site.Title }}</title>
<link rel="shortcut icon" href="{{"images/favicon.png" | relURL}}" type="image/x-icon" />
<link href="{{"css/nucleus.css" | relURL}}" rel="stylesheet">
<link href="{{"css/font-awesome.min.css" | relURL}}" rel="stylesheet">
<link href="{{"css/hybrid.css" | relURL}}" rel="stylesheet">
<link href="{{"css/featherlight.min.css" | relURL}}" rel="stylesheet">
<link href="{{"css/horsey.css" | relURL}}" rel="stylesheet">
{{with .Site.Params.themeStyle}}
<link href="{{(printf "css/%s.css" .) | relURL}}" rel="stylesheet">
{{else}}
<link href="{{"css/theme.css" | relURL}}" rel="stylesheet">
{{end}}
{{with .Site.Params.themeVariant}}
<link href="{{(printf "css/theme-%s.css" .) | relURL}}" rel="stylesheet">
{{end}}
<link rel="stylesheet" href="{{"css/bootstrap.min.css" | relURL}}">
<script src="{{"js/jquery-2.x.min.js" | relURL}}"></script>
<style type="text/css">
:root #header + #content > #left > #rlblock_left {
display:none !important;
}
</style>
{{ partial "custom-head.html" . }}
</head>
<body class="" data-url="{{ .RelPermalink }}">
{{ partial "menu.html" . }}
<section id="body">
<div id="overlay"></div>
<div class="padding highlightable">
{{if not .IsHome}}
<div id="top-bar">
{{ if and (or .IsPage .IsSection) .Site.Params.editURL }}
{{ $File := .File }}
{{ $Site := .Site }}
{{with $File.Path }}
<div id="top-github-link">
<a class="github-link" href="{{ $Site.Params.editURL }}{{ replace $File.Dir "\\" "/" }}{{ $File.LogicalName }}" target="blank">
<i class="fa fa-code-fork"></i>
{{T "Edit-this-page"}}
</a>
</div>
{{ end }}
{{ end }}
<div id="breadcrumbs" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<span id="sidebar-toggle-span">
<a href="#" id="sidebar-toggle" data-sidebar-toggle="">
<i class="fa fa-bars"></i>
</a>
</span>
<span id="toc-menu"><i class="fa fa-list-alt"></i></span>
<span class="links">
{{ template "breadcrumb" dict "page" . "value" .Title }}
</span>
</div>
{{ partial "toc.html" . }}
</div>
{{end}}
{{if .Params.tags }}
<div id="tags">
{{ range $index, $tag := .Params.tags }}
<a class="label label-default" href="{{$.Site.BaseURL}}/tags/{{ $tag | urlize }}">{{ $tag }}</a>
{{ end }}
</div>
{{end}}
<div id="body-inner">
{{if not .IsHome}}
<h1>{{.Title}}</h1>
{{end}}
{{define "breadcrumb"}}
{{ if .page.Parent}}
{{$value := (printf "<a href='%s'>%s</a> > %s" .page.Parent.URL .page.Parent.Title .value)}}
{{ template "breadcrumb" dict "page" .page.Parent "value" $value }}
{{else}}
{{.value|safeHTML}}
{{end}}
{{end}}
@@ -0,0 +1,10 @@
{{ range where .Site.Pages "Source.BaseFileName" "_header" }}
{{ .Content }}
{{else}}
<span style="font-size:smaller">
<a id="logo" href="{{.Site.BaseURL}}">
<span class="fa fa-gears" style="font-size:large"></span>
</a>
{{ T "create-header-md" }}
</small>
{{end}}
@@ -0,0 +1,126 @@
<nav id="sidebar" class="{{if $.Site.Params.showVisitedLinks }}showVisitedLinks{{end}}">
{{ $currentNode := . }}
{{ $showvisitedlinks := .Site.Params.showVisitedLinks }}
<div class="highlightable">
<div id="header-wrapper">
<div id="header">
{{ partial "logo.html" . }}
</div>
{{if not .Site.Params.noSearch}}
{{ partial "search.html" . }}
{{end}}
</div>
<ul class="topics">
{{if not .Site.Params.noHomeIcon}}
<li data-nav-id="{{"/" | relURL}}" class="dd-item">
<a href="{{"/" | relURL}}"><i class="fa fa-fw fa-home"></i></a>
</li>
{{end}}
{{if eq .Site.Params.ordersectionsby "title"}}
{{range .Site.Home.Sections.ByTitle}}
{{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
{{end}}
{{else}}
{{range .Site.Home.Sections.ByWeight}}
{{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks}}
{{end}}
{{end}}
{{with .Site.Menus.shortcuts}}
<section id="shortcuts">
{{ range sort . "Weight"}}
<li class="" role="">
{{.Pre}}
<a href="{{.URL}}">{{safeHTML .Name}}</a>
{{.Post}}
</li>
{{end}}
</section>
{{ if $.Site.Params.showVisitedLinks}}
<a class="" href="#" data-clear-history-toggle=""><i class="fa fa-history"></i> {{T "Clear-History"}}</a>
{{ end }}
{{end}}
</ul>
<section id="footer">
{{ partial "menu-footer.html" . }}
</section>
</div>
</nav>
<!-- templates -->
{{ define "section-tree-nav" }}
{{ $showvisitedlinks := .showvisitedlinks }}
{{ $currentNode := .currentnode }}
{{with .sect}}
{{if .IsSection}}
{{safeHTML .Params.head}}
<li data-nav-id="{{.URL}}" class="dd-item
{{if .IsAncestor $currentNode }}parent{{end}}
{{if eq .UniqueID $currentNode.UniqueID}}active{{end}}
{{if .Params.alwaysopen}}parent{{end}}
">
<a href="{{ .RelPermalink}}">
<span>{{safeHTML .Params.Pre}}{{.Title}}{{safeHTML .Params.Post}}</span>
{{ $numberOfPages := (add (len .Pages) (len .Sections)) }}
{{ if ne $numberOfPages 0 }}
{{if or (.IsAncestor $currentNode) (.Params.alwaysopen) }}
<i class="fa fa-angle-down fa-lg category-icon"></i>
{{else}}
<i class="fa fa-angle-right fa-lg category-icon"></i>
{{end}}
{{ end }}
{{ if $showvisitedlinks}}<i style="color:grey" class="fa fa-circle-thin read-icon"></i>{{end}}
</a>
{{ if ne $numberOfPages 0 }}
<ul>
{{ .Scratch.Set "pages" .Pages }}
{{ if .Sections}}
{{ .Scratch.Set "pages" (.Pages | union .Sections) }}
{{end}}
{{ $pages := (.Scratch.Get "pages") }}
{{if eq .Site.Params.ordersectionsby "title"}}
{{ range $pages.ByTitle }}
{{ if and .Params.hidden (not $.showhidden) }}
{{else}}
{{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks }}
{{end}}
{{ end }}
{{else}}
{{ range $pages.ByWeight }}
{{ if and .Params.hidden (not $.showhidden) }}
{{else}}
{{ template "section-tree-nav" dict "sect" . "currentnode" $currentNode "showvisitedlinks" $showvisitedlinks }}
{{end}}
{{ end }}
{{end}}
</ul>
{{ end }}
</li>
{{else}}
{{ if not .Params.Hidden }}
<li data-nav-id="{{.URL}}" class="dd-item
{{if eq .UniqueID $currentNode.UniqueID}}active{{end}}
">
<a href="{{ .RelPermalink}}">
<span>{{safeHTML .Params.Pre}}{{.Title}}{{safeHTML .Params.Post}}</span>
{{ if $showvisitedlinks}}<i style="color:grey" class="fa fa-circle-thin read-icon"></i>{{end}}
</a></li>
{{ end }}
{{end}}
{{ end }}
{{ end }}
@@ -0,0 +1,2 @@
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}">
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
@@ -0,0 +1,9 @@
<nav class="pagination" role="navigation">
{{if .HasPrev}}
<a class="newer-posts" href="{{ .Prev.URL }}">&larr; {{T "Previous-Pages"}}</a>
{{end}}
<span class="page-number">{{T "Page"}} {{ .PageNumber }} {{T "pagination-on"}} {{.TotalPages}}</span>
{{if .HasNext}}
<a class="older-posts" href="{{ .Next.URL }}">{{T "Next-Pages"}} &rarr;</a>
{{end}}
</nav>
@@ -0,0 +1,13 @@
<script src="{{"js/clipboard.min.js" | relURL}}"></script>
<script src="{{"js/featherlight.min.js" | relURL}}"></script>
<script src="{{"js/html5shiv-printshiv.min.js" | relURL}}"></script>
<script src="{{"js/highlight.pack.js" | relURL}}"></script>
<!--<script>hljs.initHighlightingOnLoad();</script>-->
<script src="{{"js/modernizr.custom.71422.js" | relURL}}"></script>
<script src="{{"js/learn.js" | relURL}}"></script>
<script src="{{"js/hugo-learn.js" | relURL}}"></script>
<link href="{{"mermaid/mermaid.css" | relURL}}" type="text/css" rel="stylesheet"/>
<script src="{{"mermaid/mermaid.js" | relURL}}"></script>
<script>mermaid.initialize({startOnLoad:true});</script>
@@ -0,0 +1,11 @@
<div class="searchbox">
<label for="search-by"><i class="fa fa-search"></i></label>
<input data-search-input id="search-by" type="text" placeholder="{{T "Search-placeholder"}}">
<span data-search-clear=""><i class="fa fa-close"></i></span>
</div>
<script type="text/javascript" src="{{"js/lunr.min.js" | relURL}}"></script>
<script type="text/javascript" src="{{"js/horsey.js" | relURL}}"></script>
<script type="text/javascript">
var baseurl = "{{.Site.BaseURL}}";
</script>
<script type="text/javascript" src="{{"js/search.js" | relURL}}"></script>
@@ -0,0 +1,5 @@
<div class="progress">
<div class="wrapper">
{{ .TableOfContents }}
</div>
</div>
@@ -0,0 +1,6 @@
<div class="alert {{ if .IsNamedParams }}
{{with .Get "theme" }}alert-{{.}}{{else}}alert-info{{end}}"
{{else}}
{{with .Get 0 }}alert-{{.}}{{else}}alert-info{{end}}"
{{end}}
role="alert">{{.Inner}}</div>
@@ -0,0 +1 @@
<anchor id="anchor-{{.Get "default"}}">{{.Inner}}</anchor>
@@ -0,0 +1 @@
<a href="#anchor-{{.Get "anchor"}}" title="" >{{.Inner}}</a>
@@ -0,0 +1,5 @@
{{range $i, $att := .Page.Params.attachments }}
{{if eq $att.filename ($.Get "filename")}}
<a class="{{$att.iconclass}}" href="{{$.Site.BaseURL}}{{$.Page.Params.id}}/{{$att.filename}}" title="Dernière modification le {{$att.lastmodifieddate}}" >{{$.Inner}}</a> ({{$att.nicefilesize}})
{{end}}
{{end}}
@@ -0,0 +1,33 @@
<section class="attachments">
<label>
<span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span>
{{with .Get "title"}}{{.}}{{else}}{{T "Attachments-label"}}{{end}}
</label>
{{if eq .Page.File.BaseFileName "index"}}
{{$.Scratch.Add "filesName" "files"}}
{{else}}
{{$.Scratch.Add "filesName" (printf "%s.files" .Page.File.BaseFileName)}}
{{end}}
{{ range (readDir (printf "./content/%s%s" .Page.File.Dir ($.Scratch.Get "filesName")) ) }}
{{ $fileDir := replace $.Page.File.Dir "\\" "/" }}
{{if ($.Get "pattern")}}
{{if (findRE ($.Get "pattern") .Name)}}
<li>
<a href="{{ printf "%s/%s%s/%s" $.Site.BaseURL $fileDir ($.Scratch.Get "filesName") .Name }}" >
{{.Name}}
</a>
({{div .Size 1024 }} ko)
</li>
{{end}}
{{else}}
<li>
<a href="{{ printf "%s/%s%s/%s" $.Site.BaseURL $fileDir ($.Scratch.Get "filesName") .Name }}" >
{{.Name}}
</a>
({{div .Size 1024 }} ko)
</li>
{{end}}
{{end}}
</section>
{{.Inner}}
@@ -0,0 +1,6 @@
<!-- Boutton -->
{{ with .Get "align" }}<center>{{end}}
<button class="btn {{with .Get "theme"}}btn-{{.}}{{else}}btn-primary{{end}}" type="button" {{ with .Get "href" }} onclick="location.href='{{.}}'"{{end}} >{{.Inner}}</button>
{{ with .Get "align" }}</center>{{end}}
<!-- Boutton -->
@@ -0,0 +1,105 @@
{{ $showhidden := .Get "showhidden"}}
{{ $style := .Get "style" | default "li" }}
{{ $depth := .Get "depth" | default 1 }}
{{ $withDescription := .Get "description" | default false }}
{{ $sortTerm := .Get "sort" | default "Weight" }}
{{ .Scratch.Set "current" .Page }}
{{if (.Get "page")}}
{{ with .Site.GetPage "section" (.Get "page") }}
{{ $.Scratch.Set "current" . }}
{{ end }}
{{ end }}
{{ $cpage := (.Scratch.Get "current") }}
<ul class="children children-{{$style}}">
{{ .Scratch.Set "pages" $cpage.Pages }}
{{ if $cpage.Sections}}
{{ .Scratch.Set "pages" ($cpage.Pages | union $cpage.Sections) }}
{{end}}
{{ $pages := (.Scratch.Get "pages") }}
{{if eq $sortTerm "Weight"}}
{{template "childs" dict "menu" $pages.ByWeight "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{else if eq $sortTerm "Name"}}
{{template "childs" dict "menu" $pages.ByTitle "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{else if eq $sortTerm "PublishDate"}}
{{template "childs" dict "menu" $pages.ByPublishDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{else if eq $sortTerm "Date"}}
{{template "childs" dict "menu" $pages.ByDate "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{else if eq $sortTerm "Length"}}
{{template "childs" dict "menu" $pages.ByLength "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{else}}
{{template "childs" dict "menu" $pages "style" $style "showhidden" $showhidden "count" 1 "depth" $depth "pages" .Site.Pages "description" $withDescription "sortTerm" $sortTerm}}
{{end}}
</ul>
{{.Inner|safeHTML}}
{{ define "childs" }}
{{ range .menu }}
{{ if and .Params.hidden (not $.showhidden) }}
{{else}}
{{if hasPrefix $.style "h"}}
{{$num := sub ( int (trim $.style "h") ) 1 }}
{{$numn := add $num $.count }}
{{(printf "<h%d>" $numn)|safeHTML}}
<a href="{{.URL}}" >{{ .Title }}</a>
{{(printf "</h%d>" $numn)|safeHTML}}
{{else}}
{{(printf "<%s>" $.style)|safeHTML}}
<a href="{{.URL}}" >{{ .Title }}</a>
{{(printf "</%s>" $.style)|safeHTML}}
{{end}}
{{if $.description}}
{{if .Description}}
<p>{{.Description}}</p>
{{else}}
<p>{{.Summary}}</p>
{{end}}
{{end}}
{{ if lt $.count $.depth}}
{{if eq $.style "li"}}
<ul>
{{end}}
{{ .Scratch.Set "pages" .Pages }}
{{ if .Sections}}
{{ .Scratch.Set "pages" (.Pages | union .Sections) }}
{{end}}
{{ $pages := (.Scratch.Get "pages") }}
{{if eq $.sortTerm "Weight"}}
{{template "childs" dict "menu" $pages.ByWeight "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{else if eq $.sortTerm "Name"}}
{{template "childs" dict "menu" $pages.ByTitle "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{else if eq $.sortTerm "PublishDate"}}
{{template "childs" dict "menu" $pages.ByPublishDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{else if eq $.sortTerm "Date"}}
{{template "childs" dict "menu" $pages.ByDate "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{else if eq $.sortTerm "Length"}}
{{template "childs" dict "menu" $pages.ByLength "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{else}}
{{template "childs" dict "menu" $pages "style" $.style "showhidden" $.showhidden "count" (add $.count 1) "depth" $.depth "pages" $.pages "description" $.description "sortTerm" $.sortTerm}}
{{end}}
{{if eq $.style "li"}}
</ul>
{{end}}
{{end}}
{{end}}
{{end}}
{{end}}
@@ -0,0 +1 @@
<pre><code>{{.Inner}}</code></pre>
@@ -0,0 +1,29 @@
{{ $name := .Get "name"}}
{{ if eq "smile" $name}}
😀
{{ else if eq "sad" $name}}
🙁
{{ else if eq "cheeky" $name}}
😛
{{ else if eq "laugh" $name}}
😃
{{ else if eq "wink" $name}}
😉
{{ else if eq "thumbs-up" $name}}
<span class="glyphicon glyphicon-thumbs-up" aria-hidden="true"></span>
{{ else if eq "thumbs-down" $name}}
<span class="glyphicon glyphicon-thumbs-down" aria-hidden="true"></span>
{{ else if eq "information" $name}}
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
{{ else if eq "tick" $name}}
<span class="glyphicon glyphicon-ok-circle" aria-hidden="true"></span>
{{ else if eq "cross" $name}}
<span class="glyphicon glyphicon-remove-circle" aria-hidden="true"></span>
{{ else if eq "warning" $name}}
<span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span>
{{else}}
( Emoticon: {{$name}} )
{{end}}
{{.Inner}}

Some files were not shown because too many files have changed in this diff Show More