aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.toml99
-rw-r--r--content/_index.md6
-rw-r--r--content/about/about.md (renamed from content/about.md)4
-rw-r--r--content/about/contribute.md80
-rw-r--r--content/about/philosophy.md (renamed from content/philosophy.md)1
-rw-r--r--content/contact/contribute.md (renamed from content/contribute.md)5
-rw-r--r--content/docs/_index.md6
-rw-r--r--content/docs/compopt.html (renamed from content/compopt.html)1
-rw-r--r--content/docs/development/_index.md6
-rw-r--r--content/docs/documentation.md (renamed from content/documentation.md)6
-rw-r--r--content/docs/faq.md (renamed from content/faq.md)1
-rw-r--r--content/docs/manuals.md (renamed from content/manuals.md)1
-rw-r--r--content/docs/performance.md (renamed from content/performance.md)1
-rw-r--r--content/docs/quickstart.md11
-rw-r--r--content/docs/tutorials/_index.md5
-rw-r--r--content/docs/tutorials/dev-tut-1.md (renamed from content/dev-tut-1.md)0
-rw-r--r--content/docs/tutorials/tutorial-1.md (renamed from content/tutorial-1.md)0
-rw-r--r--content/docs/tutorials/tutorial-2.md (renamed from content/tutorial-2.md)0
-rw-r--r--content/docs/tutorials/tutorial-3.md (renamed from content/tutorial-3.md)0
-rw-r--r--content/docs/tutorials/tutorial-4.md (renamed from content/tutorial-4.md)0
-rw-r--r--content/download/_index.md6
-rw-r--r--content/download/download.md (renamed from content/download.md)1
-rw-r--r--content/download/install.md (renamed from content/install.md)0
-rw-r--r--content/download/requirements.md (renamed from content/requirements.md)0
-rw-r--r--content/extra/_index.md6
-rw-r--r--content/extra/ioq3.md (renamed from content/extra.md)75
-rw-r--r--content/extra/raptor.md59
-rw-r--r--content/extra/rumba.md11
-rw-r--r--layouts/partials/site-navigation.html72
-rw-r--r--static/javascript/dropdown.js10
30 files changed, 378 insertions, 95 deletions
diff --git a/config.toml b/config.toml
index afaa1d0..93f8126 100644
--- a/config.toml
+++ b/config.toml
@@ -4,18 +4,103 @@ title = "Ouroboros"
theme = "ananke"
enableRobotsTXT = true
DefaultContentLanguage = "en"
+#MetaDataFormat = "yaml"
[params]
description = "Ouroboros is a decentralized packet network"
favicon = "/images/ouroboros_icon.png"
logo = "/images/ouroboros_compact_64px.png"
featured_image = "/images/ouroboros_bg3.jpg"
-
-[params.copy]
-copy = ""
+twitter = "https://twitter.com/ODecentralize"
+date_format = "January 2, 2006"
+copyright = "CC BY-SA"
+author = "Dimitri Staessens"
+defaultDestcription = "Ouroboros"
[menu]
-[[menu.main]]
-name = "Repository"
-weight = 40
-url = "/cgit"
+
+ [[menu.main]]
+ name = "Download"
+ weight = 1
+ url = "/download/"
+ # [[menu.main]]
+ # name = "Get Ouroboros"
+ # parent = "Download"
+ # weight = 1
+ # url = "/download/get/"
+ # [[menu.main]]
+ # name = "Install"
+ # parent = "Download"
+ # weight = 2
+ # url = "/download/install/"
+ # [[menu.main]]
+ # name = "Requirements"
+ # parent = "Download"
+ # weight = 3
+ # url = "/download/requirements/"
+
+ [[menu.main]]
+ name = "Documentation"
+ weight = 2
+ identifier = "id_docs"
+ url = "/docs/"
+ [[menu.main]]
+ name = "Getting started"
+ parent = "id_docs"
+ weight = 1
+ identifier = "id_docs_qs"
+ url = "/docs/quickstart/"
+ [[menu.main]]
+ name = "Tutorials"
+ parent = "id_docs"
+ weight = 2
+ identifier = "id_tut"
+ url = "/docs/tutorials/"
+ [[menu.main]]
+ name = "Development"
+ parent = "id_docs"
+ weight = 3
+ identifier = "id_devt"
+ url = "/docs/development/"
+ [[menu.main]]
+ name = "Manual"
+ parent = "id_docs"
+ weight = 4
+ identifier = "id_man"
+ url = "/man/"
+
+ [[menu.main]]
+ name = "Extra"
+ weight = 3
+ identifier = "id_extra"
+ url = "/extra/"
+ # [[menu.main]]
+ # name = "Rumba"
+ # parent = "id_extra"
+ # weight = 1
+ # identifier = "id_extra"
+ # url = "/extra/rumba/"
+ # [[menu.main]]
+ # name = "IoQuake3"
+ # parent = "id_extra"
+ # weight = 2
+ # identifier = "id_extra"
+ # url = "/extra/ioq3/"
+ # [[menu.main]]
+ # name = "Raptor"
+ # parent = "id_extra"
+ # weight = 3
+ # identifier = "id_extra_raptor"
+ # url = "/extra/raptor/"
+
+ [[menu.main]]
+ name = "About"
+ weight = 4
+ identifier = "id_about"
+ url = "/about/"
+
+ [[menu.main]]
+ name = "Repository"
+ weight = 100
+ identifier = "id_repo"
+ url = "/cgit/"
diff --git a/content/_index.md b/content/_index.md
index 6a79621..5ac1f6a 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1,5 +1,7 @@
---
-title: "The first completely decentralized packet network"
+title: "A completely decentralized packet network"
+date: 2019-06-22
+draft: false
---
Ouroboros is a __peer-to-peer transport network__ built on a new
@@ -9,6 +11,7 @@ networking experience and __simplify writing distributed software__
and networking libraries. It provides a __very simple API__, enabling
__unicast__ and __multicast__ services.
+<!---
Ouroboros can be __overlayed over UDP and Ethernet__. IP applications
can be tunneled over Ouroboros. Ouroboros provides its own name
resolution, reliability mechanisms, routing algorithms, and congestion
@@ -23,6 +26,7 @@ presented at [FOSDEM
2018](https://www.fosdem.org/2018/schedule/event/ipc/), and the [PhD
dissertation](https://biblio.ugent.be/publication/8615152) of Sander
Vrijders, especially chapters 5-6.
+--->
This new website is currently under construction and undergoing
frequent updates. The documentation is still sparse, please don't
diff --git a/content/about.md b/content/about/about.md
index 0ac9966..b518751 100644
--- a/content/about.md
+++ b/content/about/about.md
@@ -1,10 +1,6 @@
---
title: "About"
-menu: "main"
draft: false
-menu:
- main:
- weight: 30
---
The Ouroboros project is a decentralized packet network implementation
diff --git a/content/about/contribute.md b/content/about/contribute.md
new file mode 100644
index 0000000..5dbe7ad
--- /dev/null
+++ b/content/about/contribute.md
@@ -0,0 +1,80 @@
+---
+title: Contact
+date: 2019-06-22
+draft: false
+---
+
+General discussion and support
+------------------------------
+
+For general discussion of Ouroboros,
+[subscribe](https://www.freelists.org/list/ouroboros) to our mailing
+list: [ouroboros@freelists.org](mailto:ouroboros@freelists.org).
+
+For day-to-day discussions, join our IRC chat:
+[\#ouroboros](irc://irc.freenode.net/ouroboros).
+
+Contact us on twitter: @ODecentralize
+
+Contributing code
+-----------------
+
+Contributions should be sent as patches to the mailing list, using your
+real name and real e-mail address.
+
+The git repository contains three branches:
+
+- master: Contains the most stable version of Ouroboros.
+- testing: Contains tested code but may still contain bugs.
+- be: Contains untested but compiling code.
+
+New development is done against the 'be' branch of the git repository.
+The testing and master branches take only bugfixes.
+
+Bug reporting
+-------------
+
+Please report all bugs [here](/bugzilla). When reporting a bug, please
+do the following:
+
+1. Provide a description of the bug. How did you get it and which
+ version of Ouroboros were you using? Which Operating System are you
+ on?
+2. Provide as much technical information as possible (system logs,
+ debug traces, \...).
+3. If possible, provide a minimal code example to reproduce the bug.
+4. If you can provide a bugfix, provide it against the HEAD of the most
+ stable branch where the bug is present and send the patch to the
+ mailing list.
+
+Todo list
+---------
+
+We are currently looking for
+
+- Testing and bugfixing.
+- Integration testing for the build system beyond the "make check"
+ unit tests.
+- People that are interested in setting up some nodes to establish a
+ global testing layer.
+- Non-blocking flow allocation: Allow specifying a {0, 0} timespec to
+ return immediately and use fevent() to know when the flow is ready
+ (or allocation failed).
+- Asynchronous IPC over the UNIX sockets. For each command to the
+ IRMd, we create a UNIX socket, send the request and wait for the
+ response. This could be changed so that there is only a single UNIX
+ socket that is used for all messaging. This would simplify parallel
+ querying of the IPCPs and speed up flow allocation. The far-future
+ option is to ditch UNIX sockets and bootstrap Ouroboros local IPC
+ over itself.
+- ECDH-AES encryption using libssl and/or libgcrypt. The goal is to
+ support both libraries so that we have a fallback should major bugs
+ be discovered in one of them.
+- Customized packet serialization to remove the dependency on Google
+ Protocol Buffers. We like GPB, but it's not perfect. Importing
+ .proto files may give rise to multiple definitions and we found no
+ way to solve that.
+- Caching for the DHT.
+- Cross-compilation to OpenWRT (musl).
+- Ported applications! If you want to add native Ouroboros support for
+ your applications, just let us know and we will help you out!
diff --git a/content/philosophy.md b/content/about/philosophy.md
index 9820c1f..556071f 100644
--- a/content/philosophy.md
+++ b/content/about/philosophy.md
@@ -1,6 +1,5 @@
---
title: "Philosophy"
-description: ""
date: 2019-02-28T09:52:26+01:00
publishDate: 2019-02-28T09:52:26+01:00
author: "Dimitri Staessens"
diff --git a/content/contribute.md b/content/contact/contribute.md
index 4f1c8cc..0c2a2e6 100644
--- a/content/contribute.md
+++ b/content/contact/contribute.md
@@ -1,10 +1,7 @@
---
title: "Contribute"
-menu: "main"
+date: 2019-06-22
draft: false
-menu:
- main:
- weight: 20
---
General discussion and support
diff --git a/content/docs/_index.md b/content/docs/_index.md
new file mode 100644
index 0000000..f2a842a
--- /dev/null
+++ b/content/docs/_index.md
@@ -0,0 +1,6 @@
+---
+title: Documentation
+date: 2019-06-22
+type: page
+draft: false
+---
diff --git a/content/compopt.html b/content/docs/compopt.html
index 93ad1c4..4c4459c 100644
--- a/content/compopt.html
+++ b/content/docs/compopt.html
@@ -1,5 +1,6 @@
---
title: "Compilation options"
+date: 2019-06-22
draft: false
---
diff --git a/content/docs/development/_index.md b/content/docs/development/_index.md
new file mode 100644
index 0000000..0a5257f
--- /dev/null
+++ b/content/docs/development/_index.md
@@ -0,0 +1,6 @@
+---
+title: Development
+date: 2019-06-22
+#description: Ouroboros development blog
+draft: false
+---
diff --git a/content/documentation.md b/content/docs/documentation.md
index ed1c3d3..f48e03c 100644
--- a/content/documentation.md
+++ b/content/docs/documentation.md
@@ -1,10 +1,8 @@
---
title: "Documentation"
+date: 2019-06-22
+type: page
draft: false
-menu: "main"
-menu:
- main:
- weight: 10
---
# Getting started
diff --git a/content/faq.md b/content/docs/faq.md
index 954e1a2..b3ac687 100644
--- a/content/faq.md
+++ b/content/docs/faq.md
@@ -1,5 +1,6 @@
---
title: "Frequently Asked Questions (FAQ)"
+date: 2019-06-22
draft: false
---
diff --git a/content/manuals.md b/content/docs/manuals.md
index 46593a9..4ce3bce 100644
--- a/content/manuals.md
+++ b/content/docs/manuals.md
@@ -1,5 +1,6 @@
---
title: "Manuals"
+date: 2019-06-22
draft: false
---
diff --git a/content/performance.md b/content/docs/performance.md
index c5b2cf3..5cd2dc0 100644
--- a/content/performance.md
+++ b/content/docs/performance.md
@@ -1,5 +1,6 @@
---
title: "Performance tests"
+date: 2019-06-22
draft: false
---
diff --git a/content/docs/quickstart.md b/content/docs/quickstart.md
new file mode 100644
index 0000000..a1bb44b
--- /dev/null
+++ b/content/docs/quickstart.md
@@ -0,0 +1,11 @@
+---
+title: "Quick Start"
+linktitle: "Quick Start"
+date: 2019-06-22
+type: page
+draft: false
+description: "Quick Start Guide"
+---
+
+
+This quickstart guide is under construction. \ No newline at end of file
diff --git a/content/docs/tutorials/_index.md b/content/docs/tutorials/_index.md
new file mode 100644
index 0000000..b35d0b8
--- /dev/null
+++ b/content/docs/tutorials/_index.md
@@ -0,0 +1,5 @@
+---
+title: "Ouroboros Tutorials"
+date: 2019-06-22
+draft: false
+--- \ No newline at end of file
diff --git a/content/dev-tut-1.md b/content/docs/tutorials/dev-tut-1.md
index ceac8b6..ceac8b6 100644
--- a/content/dev-tut-1.md
+++ b/content/docs/tutorials/dev-tut-1.md
diff --git a/content/tutorial-1.md b/content/docs/tutorials/tutorial-1.md
index d1ac3c6..d1ac3c6 100644
--- a/content/tutorial-1.md
+++ b/content/docs/tutorials/tutorial-1.md
diff --git a/content/tutorial-2.md b/content/docs/tutorials/tutorial-2.md
index 392a659..392a659 100644
--- a/content/tutorial-2.md
+++ b/content/docs/tutorials/tutorial-2.md
diff --git a/content/tutorial-3.md b/content/docs/tutorials/tutorial-3.md
index 2dd0645..2dd0645 100644
--- a/content/tutorial-3.md
+++ b/content/docs/tutorials/tutorial-3.md
diff --git a/content/tutorial-4.md b/content/docs/tutorials/tutorial-4.md
index fd7db3a..fd7db3a 100644
--- a/content/tutorial-4.md
+++ b/content/docs/tutorials/tutorial-4.md
diff --git a/content/download/_index.md b/content/download/_index.md
new file mode 100644
index 0000000..f7cd806
--- /dev/null
+++ b/content/download/_index.md
@@ -0,0 +1,6 @@
+---
+title: Download Ouroboros
+date: 2019-06-22
+type: page
+draft: false
+---
diff --git a/content/download.md b/content/download/download.md
index 348e7d4..226a921 100644
--- a/content/download.md
+++ b/content/download/download.md
@@ -1,5 +1,6 @@
---
title: "Download Ouroboros"
+date: 2019-06-22
draft: false
---
diff --git a/content/install.md b/content/download/install.md
index ef8220c..ef8220c 100644
--- a/content/install.md
+++ b/content/download/install.md
diff --git a/content/requirements.md b/content/download/requirements.md
index a8444d7..a8444d7 100644
--- a/content/requirements.md
+++ b/content/download/requirements.md
diff --git a/content/extra/_index.md b/content/extra/_index.md
new file mode 100644
index 0000000..c1baddf
--- /dev/null
+++ b/content/extra/_index.md
@@ -0,0 +1,6 @@
+---
+title: "Additional software"
+date: 2019-06-22
+type: page
+draft: false
+---
diff --git a/content/extra.md b/content/extra/ioq3.md
index 4cdddab..718acaf 100644
--- a/content/extra.md
+++ b/content/extra/ioq3.md
@@ -1,73 +1,8 @@
---
-title: "Extra"
+title: "ioq3"
draft: false
-menu: "main"
-menu:
- main:
- weight: 40
---
-Raptor
-------
-
-Raptor is a proof-of-concept FPGA demonstrator for running Ouroboros
-directly over Ethernet PHY (OSI L1). For this, it uses the [NetFPGA
-10G](http://netfpga.org/site/#/systems/3netfpga-10g/details/) platform,
-which has Broadcom AEL2005 PHY 10G Ethernet devices. Raptor is
-point-to-point and does not use addresses. It is available for Linux
-only and support is minimal. If you are interested in trying it out,
-please contact us via the ouroboros mailing list or the IRC channel.
-
-You can clone the [raptor repository](/cgit/raptor/):
-
-```
-$ git clone http://ouroboros.rocks/git/raptor
-$ git clone https://ouroboros.rocks/git/raptor
-$ git clone git://ouroboros.rocks/raptor
-```
-
-There are two directories. The *linux* directory contains the kernel
-module, the *netfpga10g* directory contains the files necessary to build
-the FPGA design.
-
-To build and install the kernel module:
-
-```
-$ make
-$ sudo make install
-```
-
-You can now load/unload the raptor kernel module:
-
-```
-$ sudo modprobe raptor
-$ sudo rmmod raptor
-```
-
-To uninstall the module:
-
-```
-$ sudo make uninstall
-```
-
-You will need to get some cores (such as PCIe and XAUI) from Xilinx in
-order to build this project using the provided tcl script. Detailed
-instructions on how to build the NetFPGA project under construction.
-
-Raptor is integrated in Ouroboros and the raptor IPCP will be built if
-the kernel module is installed in the default location.
-
-Raptor was developed as part of the master thesis (in Dutch)
-"Implementatie van de Recursive Internet Architecture op een FPGA
-platform" by Alexander D'hoore. The kernel module is licensed under
-the [GNU Public License (GPL) version
-2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html). The NetFPGA
-design is available under the [GNU Lesser Public License (LGPL) version
-2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html).
-
-ioq3
-----
-
As a demo, we have added Ouroboros support to the
[ioq3](https://github.com/ioquake/ioq3) game engine. ioq3 is a fork of
ID software's [Quake III Arena GPL Source
@@ -159,11 +94,3 @@ connect -O my.ioq3.server
The client should now connect to the ioq3 dedicated server over
Ouroboros. Register the name in non-local layers to connect from other
machines. Happy Fragging!
-
-Rumba
------
-
-Rumba is an experimentation framework for deploying recursive network
-experiments in various network testbeds. It is developed as part of the
-[ARCFIRE](http://ict-arcfire.eu) project, and available on
-[gitlab](https://gitlab.com/arcfire/rumba) .
diff --git a/content/extra/raptor.md b/content/extra/raptor.md
new file mode 100644
index 0000000..122a570
--- /dev/null
+++ b/content/extra/raptor.md
@@ -0,0 +1,59 @@
+---
+title: "Raptor"
+draft: false
+---
+
+Raptor is a proof-of-concept FPGA demonstrator for running Ouroboros
+directly over Ethernet PHY (OSI L1). For this, it uses the [NetFPGA
+10G](http://netfpga.org/site/#/systems/3netfpga-10g/details/) platform,
+which has Broadcom AEL2005 PHY 10G Ethernet devices. Raptor is
+point-to-point and does not use addresses. It is available for Linux
+only and support is minimal. If you are interested in trying it out,
+please contact us via the ouroboros mailing list or the IRC channel.
+
+You can clone the [raptor repository](/cgit/raptor/):
+
+```
+$ git clone http://ouroboros.rocks/git/raptor
+$ git clone https://ouroboros.rocks/git/raptor
+$ git clone git://ouroboros.rocks/raptor
+```
+
+There are two directories. The *linux* directory contains the kernel
+module, the *netfpga10g* directory contains the files necessary to build
+the FPGA design.
+
+To build and install the kernel module:
+
+```
+$ make
+$ sudo make install
+```
+
+You can now load/unload the raptor kernel module:
+
+```
+$ sudo modprobe raptor
+$ sudo rmmod raptor
+```
+
+To uninstall the module:
+
+```
+$ sudo make uninstall
+```
+
+You will need to get some cores (such as PCIe and XAUI) from Xilinx in
+order to build this project using the provided tcl script. Detailed
+instructions on how to build the NetFPGA project under construction.
+
+Raptor is integrated in Ouroboros and the raptor IPCP will be built if
+the kernel module is installed in the default location.
+
+Raptor was developed as part of the master thesis (in Dutch)
+"Implementatie van de Recursive Internet Architecture op een FPGA
+platform" by Alexander D'hoore. The kernel module is licensed under
+the [GNU Public License (GPL) version
+2](https://www.gnu.org/licenses/old-licenses/gpl-2.0.html). The NetFPGA
+design is available under the [GNU Lesser Public License (LGPL) version
+2.1](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html).
diff --git a/content/extra/rumba.md b/content/extra/rumba.md
new file mode 100644
index 0000000..8502f9b
--- /dev/null
+++ b/content/extra/rumba.md
@@ -0,0 +1,11 @@
+---
+title: "Rumba"
+date: 2019-06-22
+draft: false
+type: page
+---
+
+Rumba is an __experimentation framework__ for deploying recursive
+network experiments in various network testbeds. It is developed as
+part of the [ARCFIRE](http://ict-arcfire.eu) project, and available on
+[gitlab](https://gitlab.com/arcfire/rumba) .
diff --git a/layouts/partials/site-navigation.html b/layouts/partials/site-navigation.html
new file mode 100644
index 0000000..ba94825
--- /dev/null
+++ b/layouts/partials/site-navigation.html
@@ -0,0 +1,72 @@
+<nav class="pv3 ph3 ph4-ns" role="navigation">
+ <div class="flex-l justify-between items-center center">
+ <a href="{{ .Site.BaseURL }}" class="f3 fw2 hover-white no-underline white-90 dib">
+ {{ .Site.Title }}
+ </a>
+ <div class="flex-l items-center">
+
+ {{ $currentPage := . }}
+ <!-- start .main-menu -->
+ <ul class="pl0 mr3">
+ {{ range .Site.Menus.main }}
+ {{ if .HasChildren }}
+ <li class="list f5 f4-ns fw4 dib pr3 {{ if $currentPage.HasMenuCurrent "main" . }}active{{ end }}">
+ <a class="hover-white no-underline white-90" href="{{ .URL }}" title="{{ .Name }} page">
+ {{ .Pre }}
+ <span>{{ .Name }}</span>
+ </a>
+ <span id="about_chevron" class="fa fa-chevron-down"></span>
+ <ul class="sub-menu dn pa0 w-33 center mt0">
+ {{ range .Children }}
+ <li class="db {{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
+ <a href="{{ .URL }}">{{ .Name }}</a>
+ </li>
+ {{ end }}
+ </ul>
+ </li>
+ {{ else }}
+ <li class="list f5 f4-ns fw4 dib pr3">
+ <a class="hover-white no-underline white-90" href="{{ .URL }}" title="{{ .Name }} page">
+ {{ .Name }}
+ </a>
+ </li>
+
+ {{ end }}
+ {{ end }}
+ </ul><!-- end /.main-menu -->
+
+ {{ partial "social-follow.html" . }}
+ </div>
+ </div>
+</nav>
+<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
+<script type="text/javascript" src="/javascript/dropdown.js"></script>
+<style type="text/css">
+ span.fa {
+ color: #FFF;
+ }
+ @media (max-width: 991px) {
+ ul.sub-menu {
+ display: block;
+ }
+ }
+ @media (min-width: 992px) {
+ ul.sub-menu:not(.dn){
+ position: absolute;
+ top: auto;
+ width: 100%;
+ max-width: 320px;
+ background: rgba(0,0,0,0.333);
+ }
+ }
+ ul.sub-menu li a {
+ color: #FFF;
+ display: block;
+ text-decoration: none;
+ padding: 8px;
+ }
+ ul.sub-menu li a:hover,
+ ul.sub-menu li a:focus {
+ background: rgba(0,0,0,0.7);
+ }
+</style>
diff --git a/static/javascript/dropdown.js b/static/javascript/dropdown.js
new file mode 100644
index 0000000..c1b317a
--- /dev/null
+++ b/static/javascript/dropdown.js
@@ -0,0 +1,10 @@
+var span = document.querySelector('span#about_chevron');
+var menu = document.querySelector('ul.sub-menu');
+ span.addEventListener('click', function (event) {
+ if (menu.classList.contains('dn')) {
+ menu.classList.remove('dn');
+ } else {
+ menu.classList.add('dn');
+ }
+ }
+);