bytewax-docs 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +7 -0
  2. data/.stylelintrc +13 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +175 -0
  5. data/_assets/js/cookies.js +39 -0
  6. data/_assets/js/docs.js +103 -0
  7. data/_assets/js/lib/jquery-3.6.0.min.js +2 -0
  8. data/_assets/js/lib/jquery.scrollspy.js +97 -0
  9. data/_assets/js/lib/marked.min.js +6 -0
  10. data/_assets/js/lib/notebook.min.js +1 -0
  11. data/_assets/js/lib/prism.js +17 -0
  12. data/_assets/js/lib/simple-jekyll-search.min.js +6 -0
  13. data/_assets/js/navbar.js +90 -0
  14. data/_assets/js/search.js +12 -0
  15. data/_assets/js/tutorial.js +248 -0
  16. data/_assets/scss/components/article.scss +132 -0
  17. data/_assets/scss/components/cookie-consent.scss +35 -0
  18. data/_assets/scss/components/footer.scss +154 -0
  19. data/_assets/scss/components/navbar.scss +345 -0
  20. data/_assets/scss/components/newsletter.scss +222 -0
  21. data/_assets/scss/global/alerts.scss +112 -0
  22. data/_assets/scss/global/animate.scss +633 -0
  23. data/_assets/scss/global/buttons.scss +186 -0
  24. data/_assets/scss/global/fonts.scss +95 -0
  25. data/_assets/scss/global/layout.scss +25 -0
  26. data/_assets/scss/global/mixins.scss +134 -0
  27. data/_assets/scss/global/normalize.scss +349 -0
  28. data/_assets/scss/global/prism.scss +383 -0
  29. data/_assets/scss/global/slick.scss +133 -0
  30. data/_assets/scss/global/typography.scss +106 -0
  31. data/_assets/scss/global/variables.scss +23 -0
  32. data/_assets/scss/main.scss +35 -0
  33. data/_assets/scss/templates/default.scss +100 -0
  34. data/_assets/scss/templates/docs/content.scss +113 -0
  35. data/_assets/scss/templates/docs/layout.scss +21 -0
  36. data/_assets/scss/templates/docs/pagination.scss +48 -0
  37. data/_assets/scss/templates/docs/sidebar.scss +222 -0
  38. data/_assets/scss/templates/docs/toc.scss +65 -0
  39. data/_assets/scss/templates/tutorials/archive.scss +173 -0
  40. data/_assets/scss/templates/tutorials/content.scss +208 -0
  41. data/_assets/scss/templates/tutorials/layout.scss +22 -0
  42. data/_assets/scss/templates/tutorials/snippets.scss +259 -0
  43. data/_config.yml +84 -0
  44. data/_data/categories.yml +3 -0
  45. data/_data/cookies.yml +10 -0
  46. data/_data/footer.yml +14 -0
  47. data/_data/navbar.yml +17 -0
  48. data/_docs/another-article.md +19 -0
  49. data/_docs/sample-article.md +19 -0
  50. data/_includes/alert.html +4 -0
  51. data/_includes/cookie-consent.html +13 -0
  52. data/_includes/docs/pagination.html +28 -0
  53. data/_includes/docs/sidebar.html +42 -0
  54. data/_includes/docs/toc.html +4 -0
  55. data/_includes/footer.html +36 -0
  56. data/_includes/google_analytics.html +12 -0
  57. data/_includes/head.html +73 -0
  58. data/_includes/navbar.html +57 -0
  59. data/_includes/tutorials/content.html +30 -0
  60. data/_includes/tutorials/post.html +31 -0
  61. data/_includes/tutorials/snippets.html +36 -0
  62. data/_layouts/base.html +21 -0
  63. data/_layouts/default.html +14 -0
  64. data/_layouts/docs.html +32 -0
  65. data/_layouts/tutorial.html +17 -0
  66. data/_layouts/tutorials.html +26 -0
  67. data/_tutorials/hello-world.md +142 -0
  68. data/assets/css/docs.css +1 -0
  69. data/assets/css/main.css +8 -0
  70. data/assets/fonts/jetbrains-mono-v3-latin-regular.eot +0 -0
  71. data/assets/fonts/jetbrains-mono-v3-latin-regular.svg +318 -0
  72. data/assets/fonts/jetbrains-mono-v3-latin-regular.ttf +0 -0
  73. data/assets/fonts/jetbrains-mono-v3-latin-regular.woff +0 -0
  74. data/assets/fonts/jetbrains-mono-v3-latin-regular.woff2 +0 -0
  75. data/assets/fonts/material-icons.woff2 +0 -0
  76. data/assets/fonts/open-sans-v18-latin-600.eot +0 -0
  77. data/assets/fonts/open-sans-v18-latin-600.svg +336 -0
  78. data/assets/fonts/open-sans-v18-latin-600.ttf +0 -0
  79. data/assets/fonts/open-sans-v18-latin-600.woff +0 -0
  80. data/assets/fonts/open-sans-v18-latin-600.woff2 +0 -0
  81. data/assets/fonts/open-sans-v18-latin-600italic.eot +0 -0
  82. data/assets/fonts/open-sans-v18-latin-600italic.svg +349 -0
  83. data/assets/fonts/open-sans-v18-latin-600italic.ttf +0 -0
  84. data/assets/fonts/open-sans-v18-latin-600italic.woff +0 -0
  85. data/assets/fonts/open-sans-v18-latin-600italic.woff2 +0 -0
  86. data/assets/fonts/open-sans-v18-latin-700.eot +0 -0
  87. data/assets/fonts/open-sans-v18-latin-700.svg +334 -0
  88. data/assets/fonts/open-sans-v18-latin-700.ttf +0 -0
  89. data/assets/fonts/open-sans-v18-latin-700.woff +0 -0
  90. data/assets/fonts/open-sans-v18-latin-700.woff2 +0 -0
  91. data/assets/fonts/open-sans-v18-latin-700italic.eot +0 -0
  92. data/assets/fonts/open-sans-v18-latin-700italic.svg +342 -0
  93. data/assets/fonts/open-sans-v18-latin-700italic.ttf +0 -0
  94. data/assets/fonts/open-sans-v18-latin-700italic.woff +0 -0
  95. data/assets/fonts/open-sans-v18-latin-700italic.woff2 +0 -0
  96. data/assets/fonts/open-sans-v18-latin-italic.eot +0 -0
  97. data/assets/fonts/open-sans-v18-latin-italic.svg +349 -0
  98. data/assets/fonts/open-sans-v18-latin-italic.ttf +0 -0
  99. data/assets/fonts/open-sans-v18-latin-italic.woff +0 -0
  100. data/assets/fonts/open-sans-v18-latin-italic.woff2 +0 -0
  101. data/assets/fonts/open-sans-v18-latin-regular.eot +0 -0
  102. data/assets/fonts/open-sans-v18-latin-regular.svg +336 -0
  103. data/assets/fonts/open-sans-v18-latin-regular.ttf +0 -0
  104. data/assets/fonts/open-sans-v18-latin-regular.woff +0 -0
  105. data/assets/fonts/open-sans-v18-latin-regular.woff2 +0 -0
  106. data/assets/img/cancel-grey.svg +11 -0
  107. data/assets/img/cancel.svg +3 -0
  108. data/assets/img/facebook-yellow.svg +11 -0
  109. data/assets/img/facebook.svg +3 -0
  110. data/assets/img/favicon.png +0 -0
  111. data/assets/img/github_black.svg +4 -0
  112. data/assets/img/github_white.svg +4 -0
  113. data/assets/img/linkedin-yellow.svg +12 -0
  114. data/assets/img/linkedin.svg +3 -0
  115. data/assets/img/logo.svg +44 -0
  116. data/assets/img/logo_mono.svg +40 -0
  117. data/assets/img/logo_white.svg +46 -0
  118. data/assets/img/logo_yellow.svg +44 -0
  119. data/assets/img/og-image.png +0 -0
  120. data/assets/img/twitter-yellow.svg +14 -0
  121. data/assets/img/twitter.svg +3 -0
  122. data/assets/js/color-mode.min.js +2 -0
  123. data/assets/js/scripts.js +625 -0
  124. data/assets/js/scripts.min.js +56 -0
  125. data/gulpfile.js +49 -0
  126. data/package-lock.json +7350 -0
  127. data/package.json +34 -0
  128. data/search.json +13 -0
  129. data/tutorials/hello-world/Dockerfile +4 -0
  130. data/tutorials/hello-world/client.py +3 -0
  131. data/tutorials/hello-world/hello-world.png +0 -0
  132. data/tutorials/hello-world/hello.py +10 -0
  133. data/tutorials/hello-world/setup.sh +5 -0
  134. data/tutorials/hello-world/shell_commands.sh +5 -0
  135. data/tutorials/hello-world/swarm.yaml +26 -0
  136. metadata +191 -0
data/_config.yml ADDED
@@ -0,0 +1,84 @@
1
+ # Global site settings
2
+ title: bytewax
3
+ url: https://docs.bytewax.io
4
+ author: bytewax
5
+ email: konrad@sienkowski.eu
6
+ language: en
7
+
8
+ # Global site description, added to HEAD section if page/post description is not specified
9
+ description: bytewax - no infra, only code
10
+
11
+ # Keywords related to your site's content (for SEO purposes)
12
+ keywords: bytewax, machine, learning, ai, ml, inference
13
+
14
+ # Configure brand settings (logo, icons, default mobile theme colour)
15
+ logo: 'assets/img/logo.svg'
16
+ logo-reverse: 'assets/img/logo_yellow.svg'
17
+ logo-monochrome: 'assets/img/logo_mono.svg'
18
+ logo-dark: 'assets/img/logo_white.svg'
19
+ favicon: '/assets/img/favicon.png'
20
+
21
+ # Suggest a colour for mobile browsers to use as the browser's theme. This is only supported by a few mobile browsers.
22
+ mobile-theme-col: '#FAB90F'
23
+
24
+ # Specify path to global og:image (for social media sharing)
25
+ og-image: '/assets/img/og-image.png'
26
+
27
+ # Fill in your Google Analytics ID to track your website using Google Analytics (_includes/google_analytics.html)
28
+ # google_analytics: "G-06HTJPTC44"
29
+
30
+ # Default excerpt word length - truncate the post excerpt to the specified number of words
31
+ excerpt-length: 20
32
+
33
+ # Add collections for custom content
34
+ collections:
35
+ docs:
36
+ output: true
37
+ tutorials:
38
+ output: true
39
+
40
+ # Default YAML values (more information on Jekyll's site)
41
+ defaults:
42
+ - scope:
43
+ path: 'assets/img'
44
+ values:
45
+ image: true-
46
+ - scope:
47
+ type: pages
48
+ path: _pages
49
+ values:
50
+ is_post: false
51
+ - scope:
52
+ type: docs
53
+ path: _docs
54
+ values:
55
+ layout: docs
56
+ permalink: /:slugified_categories/:title/
57
+ - scope:
58
+ type: tutorials
59
+ path: _tutorials
60
+ values:
61
+ layout: tutorial
62
+ permalink: /tutorials/:title/
63
+
64
+ # Include additional folders
65
+ include:
66
+ - _pages
67
+ - .htaccess
68
+
69
+ # Exclude these files from production site
70
+ exclude:
71
+ - .sass-cache/
72
+ - .jekyll-cache/
73
+ - gemfiles/
74
+ - Gemfile
75
+ - Gemfile.lock
76
+ - bytewax-docs.gemspec
77
+ - bytewax-docs-0.1.0.gem
78
+ - node_modules/
79
+ - gulpfile.js
80
+ - README.md
81
+ - vendor/bundle/
82
+ - vendor/cache/
83
+ - vendor/gems/
84
+ - vendor/ruby/
@@ -0,0 +1,3 @@
1
+ # Specify custom order of categories (Docs)
2
+ order:
3
+ - Sample category
data/_data/cookies.yml ADDED
@@ -0,0 +1,10 @@
1
+ # Cookie consent settings
2
+ display: true
3
+ # How many days takes for cookie of the popup to reset
4
+ expire: 28
5
+ content: >
6
+ This website uses cookies to provide services at the highest level. You can change cookie settings (including their blocking) in your browser settings at any time.
7
+ By continuing to use the site, you agree to their use.
8
+ link:
9
+ title: Privacy policy
10
+ url: /privacy-policy/
data/_data/footer.yml ADDED
@@ -0,0 +1,14 @@
1
+ copyright: Copyright 2021 by Bytewax, Inc. All rights reserved
2
+
3
+ widgets:
4
+ - title: Resources
5
+ nav:
6
+ - page: Documentation
7
+ url: /
8
+ - page: Tutorials
9
+ url: /tutorials/
10
+
11
+ - title: Legal
12
+ nav:
13
+ - page: Privacy policy
14
+ url: /privacy-policy/
data/_data/navbar.yml ADDED
@@ -0,0 +1,17 @@
1
+ nav:
2
+ - title: Home
3
+ url: /
4
+ button: false
5
+
6
+ - title: Resources
7
+ url: #
8
+ dropdown:
9
+ - page: Docs
10
+ url: /
11
+ - page: Tutorials
12
+ url: /tutorials/
13
+ button: false
14
+
15
+ - title: Contact Us
16
+ url: https://www.bytewax.io/contact-us/
17
+ button: true
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: Another article
3
+ category: Sample category
4
+ order: 0
5
+ ---
6
+
7
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut mauris eu est ultricies congue at id ante. Nam sodales finibus bibendum. Ut sit amet nunc sem.
8
+
9
+ ## Headline 2
10
+
11
+ Vivamus sagittis tincidunt eleifend. Cras in euismod erat. Duis nisi tortor, eleifend in tincidunt laoreet, lacinia sit amet metus. Nullam nunc augue, luctus eget tortor ac, venenatis bibendum augue. In hac habitasse platea dictumst. Phasellus rhoncus sagittis bibendum. Proin mattis, felis quis tempus iaculis, lorem quam efficitur justo, eget eleifend augue neque ac justo. Praesent eget lacinia leo, eu imperdiet enim. Sed blandit felis vitae maximus scelerisque.
12
+
13
+ ### Headline 3
14
+
15
+ Maecenas sollicitudin hendrerit elementum. Nulla porta libero sed accumsan lobortis. Vivamus quis urna porta nisi pulvinar aliquam sed a risus. Donec interdum turpis non nisi consectetur, ut rutrum nisl dictum. Etiam viverra interdum justo vitae cursus.
16
+
17
+ ## Yet another H2 tag
18
+
19
+ Morbi in ex laoreet, tempus ex at, ornare lectus. Nulla a nisi fermentum, volutpat sapien eu, fringilla nibh. Vestibulum eget tempor nulla.
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: Sample article
3
+ category: Sample category
4
+ order: -1
5
+ ---
6
+
7
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut mauris eu est ultricies congue at id ante. Nam sodales finibus bibendum. Ut sit amet nunc sem.
8
+
9
+ ## Headline 2
10
+
11
+ Vivamus sagittis tincidunt eleifend. Cras in euismod erat. Duis nisi tortor, eleifend in tincidunt laoreet, lacinia sit amet metus. Nullam nunc augue, luctus eget tortor ac, venenatis bibendum augue. In hac habitasse platea dictumst. Phasellus rhoncus sagittis bibendum. Proin mattis, felis quis tempus iaculis, lorem quam efficitur justo, eget eleifend augue neque ac justo. Praesent eget lacinia leo, eu imperdiet enim. Sed blandit felis vitae maximus scelerisque.
12
+
13
+ ### Headline 3
14
+
15
+ Maecenas sollicitudin hendrerit elementum. Nulla porta libero sed accumsan lobortis. Vivamus quis urna porta nisi pulvinar aliquam sed a risus. Donec interdum turpis non nisi consectetur, ut rutrum nisl dictum. Etiam viverra interdum justo vitae cursus.
16
+
17
+ ## Yet another H2 tag
18
+
19
+ Morbi in ex laoreet, tempus ex at, ornare lectus. Nulla a nisi fermentum, volutpat sapien eu, fringilla nibh. Vestibulum eget tempor nulla.
@@ -0,0 +1,4 @@
1
+ <div class="alert alert--{{ include.type }}" role="alert">
2
+ <i class="alert__icon">{{ include.icon }}</i>
3
+ <p class="alert__content">{{ include.content }}</p>
4
+ </div>
@@ -0,0 +1,13 @@
1
+ {% if site.data.cookies.display %}
2
+ <div class="cookie-consent" data-expire="{{ site.data.cookies.expire | default: 14 }}">
3
+ <div class="cookie-consent__content">
4
+ {{ site.data.cookies.content }}
5
+ <a href="{{ site.data.cookies.link.url }}" class="cookie-consent__link">
6
+ {{ site.data.cookies.link.title }}
7
+ </a>
8
+ </div>
9
+ <button class="cookie-consent__button btn btn--md btn--primary">
10
+ I agree
11
+ </button>
12
+ </div>
13
+ {% endif %}
@@ -0,0 +1,28 @@
1
+ {% if page.categories %}
2
+ {% assign currentCat = page.categories[0] %}
3
+ {% assign links = site.docs | sort: 'order' | where: 'category', currentCat %}
4
+ {% endif %}
5
+
6
+ {% for link in links %}
7
+ {% if link.title == page.title %}
8
+ {% unless forloop.first %}
9
+ {% assign prev = tmpprev %}
10
+ {% endunless %}
11
+ {% unless forloop.last %}
12
+ {% assign next = links[forloop.index] %}
13
+ {% endunless %}
14
+ {% endif %}
15
+ {% assign tmpprev = link %}
16
+ {% endfor %}
17
+ <nav class="docs__pagination">
18
+ {% if prev %}
19
+ <a class="docs__pagination-item docs__pagination-item--prev" href="{{ prev.url}}" title="{{ prev.title }}">
20
+ {{ prev.title }}
21
+ </a>
22
+ {% endif %}
23
+ {% if next %}
24
+ <a class="docs__pagination-item docs__pagination-item--next" href="{{ next.url}}">
25
+ {{ next.title }}
26
+ </a>
27
+ {% endif %}
28
+ </nav>
@@ -0,0 +1,42 @@
1
+ <aside class="docs__sidebar">
2
+ <!-- Search -->
3
+ <div class="docs__search">
4
+ <input id="search-input" class="docs__search-input" type="search" placeholder="Search docs…" autocomplete="off">
5
+ <ul class="docs__search-results" id="results-container"></ul>
6
+ </div>
7
+
8
+ <!-- Nav -->
9
+ {% assign docs_by_category = site.docs | group_by: 'category' %}
10
+ <ul class="docs__nav">
11
+ {% for cat in site.data.categories.order %}
12
+ {% assign currentCat = docs_by_category | where: 'name', cat | first %}
13
+ {% assign currPath = page.path | split: "/" %}
14
+ {% assign catSlug = currentCat.name | slugify %}
15
+ {% if page.url == '/' and forloop.first == true %}
16
+ <li class="docs__nav-item--active">
17
+ {% elsif currPath[1] == catSlug %}
18
+ <li class="docs__nav-item--active">
19
+ {% else %}
20
+ <li class="docs__nav-item">
21
+ {% endif %}
22
+ <a class="docs__nav-toggle">{{ currentCat.name}}</a>
23
+ <ul class="docs__nav-dropdown">
24
+ {% assign docs = site.docs | where: 'category', currentCat.name | sort: 'order' %}
25
+ {% assign sortedDocs = site.docs | sort: 'order' %}
26
+ {% for entry in docs %}
27
+ {% if page.url == entry.url or page.url == "/" and sortedDocs[0].title == entry.title %}
28
+ <li class="docs__nav-dropdown-item docs__nav-dropdown-item--active">
29
+ <a href="{{ entry.url }}" class="docs__nav-dropdown-link">{{ entry.title }}</a>
30
+ </li>
31
+ {% else %}
32
+ <li class="docs__nav-dropdown-item">
33
+ <a href="{{ entry.url }}" class="docs__nav-dropdown-link">{{ entry.title }}</a>
34
+ </li>
35
+ {% endif %}
36
+ {% endfor %}
37
+ </ul>
38
+ </li>
39
+ {% endfor %}
40
+ </ul>
41
+
42
+ </aside>
@@ -0,0 +1,4 @@
1
+ <aside class="docs__toc">
2
+ <h5 class="docs__toc-title h4">In this section</h5>
3
+ <ul class="docs__toc-list"></ul>
4
+ </aside>
@@ -0,0 +1,36 @@
1
+ <!-- Footer -->
2
+ <footer class="footer">
3
+ <div class="footer__container container row">
4
+ <div class="footer__copyright">
5
+ {% if site.logo %}
6
+ <img class="footer__logo" src="{{ site.logo | relative_url}}" alt="{{ site.title }}">
7
+ {% endif %}
8
+ {% if site.logo-monochrome %}
9
+ <img class="footer__logo--mono" src="{{ site.logo-monochrome | relative_url}}" alt="{{ site.title }}">
10
+ {% endif %}
11
+ {% if site.logo-dark %}
12
+ <img class="footer__logo--dark" src="{{ site.logo-dark | relative_url}}" alt="{{ site.title }}">
13
+ {% endif %}
14
+ <p>&copy; {{ site.data.footer.copyright }}</p>
15
+ </div>
16
+ {% for item in site.data.footer.widgets %}
17
+ <div class="footer__widget footer__widget--{{ item.title | downcase }}">
18
+ <h5 class="footer__widget-title">
19
+ {{ item.title }}
20
+ </h5>
21
+ {% if item.nav[0] %}
22
+ <ul class="footer__nav">
23
+ {% for entry in item.nav %}
24
+ <li class="footer__nav-item">
25
+ <a class="footer__nav-link" href="{{ entry.url }}">{{ entry.page }}</a>
26
+ </li>
27
+ {% endfor %}
28
+ </ul>
29
+ {% endif %}
30
+ </div>
31
+ {% endfor %}
32
+ </div>
33
+ </footer>
34
+
35
+ <!-- Scripts -->
36
+ <script src="{{ 'assets/js/scripts.min.js' | relative_url}}"></script>
@@ -0,0 +1,12 @@
1
+ {% if site.google_analytics %}
2
+ <!-- Global site tag (gtag.js) - Google Analytics -->
3
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.google_analytics }}"></script>
4
+ <script>
5
+ window.dataLayer = window.dataLayer || [];
6
+ function gtag(){dataLayer.push(arguments);}
7
+ gtag('js', new Date());
8
+
9
+ gtag('config', '{{ site.google_analytics }}');
10
+ </script>
11
+ <!-- End Google Analytics -->
12
+ {% endif %}
@@ -0,0 +1,73 @@
1
+ <head>
2
+ <meta charset="utf-8">
3
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
4
+ <link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ '/feed.xml' | absolute_url }}">
5
+
6
+ {% capture title %}
7
+ {% if page.title %}
8
+ {{ page.title | strip_html | xml_escape }} – {{ site.title | strip_html | xml_escape }}
9
+ {% else %}
10
+ {{ site.title | strip_html | xml_escape }}
11
+ {% endif %}
12
+ {% endcapture %}
13
+ <title>{{ title }}</title>
14
+
15
+ <meta property="og:title" content="{{ title }}">
16
+ <meta property="twitter:title" content="{{ title }}">
17
+
18
+ {% capture description %}
19
+ {% if page.description %}
20
+ {{ page.description | strip_html | xml_escape }}
21
+ {% elsif page.is_post %}
22
+ {{ page.content | strip_html | xml_escape | truncatewords: 50 }}
23
+ {% else %}
24
+ {{ site.description | strip_html | xml_escape }}
25
+ {% endif %}
26
+ {% endcapture %}
27
+
28
+ <meta name="description" content="{{ description }}">
29
+ <meta property="og:description" content="{{ description }}">
30
+ <meta property="twitter:description" content="{{ description }}">
31
+
32
+ {% if page.is_post %}
33
+ {% assign author = site.data.team[page.author] %}
34
+ <meta property="og:type" content="article">
35
+ <meta property="og:article:author" content="{{ author.name }}">
36
+ <meta property="og:article:published_time" content="{{ page.date | date_to_xmlschema }}">
37
+ <meta property="og:url" content="{{ page.url | absolute_url }}">
38
+ {% if page.featured-image %}
39
+ <meta property="og:image" content="{{ page.featured-image | absolute_url }}">
40
+ <meta name="twitter:image" content="{{ page.featured-image | absolute_url }}">
41
+ {% endif %}
42
+ <link rel="canonical" href="{{ page.url | absolute_url }}">
43
+ {% else %}
44
+ <meta property="og:type" content="website">
45
+ <meta property="og:url" content="{{ page.url | absolute_url | strip_index }}">
46
+ {% if site.og-image %}
47
+ <meta property="og:image" content="{{ site.og-image | absolute_url }}">
48
+ {% endif %}
49
+ <link rel="canonical" href="{{ page.url | absolute_url | strip_index }}">
50
+ {% endif %}
51
+
52
+ {% if site.keywords %}
53
+ <meta name="keywords" content="{{ site.keywords }}">
54
+ {% endif %}
55
+
56
+ {% if site.mobile-theme-col %}
57
+ <meta name="theme-color" content="{{ site.mobile-theme-col }}">
58
+ {% endif %}
59
+
60
+ {% if site.title %}
61
+ <meta property="og:site_name" content="{{ site.title }}">
62
+ {% endif %}
63
+
64
+ <!-- Stylesheet -->
65
+ <link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url }}">
66
+
67
+ {% if site.favicon %}
68
+ <link rel="icon" href="{{ site.favicon | relative_url }}">
69
+ {% endif %}
70
+
71
+ <!-- Google Analytics -->
72
+ {% include google_analytics.html %}
73
+ </head>
@@ -0,0 +1,57 @@
1
+ <!-- Navbar -->
2
+ <nav class="navbar">
3
+ <div class="navbar__container container">
4
+ <!-- Brand -->
5
+ <a class="navbar__brand" href="{{ '/' | relative_url}}">
6
+ {% if site.logo %}
7
+ <img class="navbar__logo" src="{{ site.logo | relative_url}}" alt="{{ site.title }}">
8
+ {% endif %}
9
+ {% if site.logo-reverse %}
10
+ <img class="navbar__logo--yellow" src="{{ site.logo-reverse | relative_url}}" alt="{{ site.title }}">
11
+ {% endif %}
12
+ {% if site.logo-dark %}
13
+ <img class="navbar__logo--dark" src="{{ site.logo-dark | relative_url}}" alt="{{ site.title }}">
14
+ {% endif %}
15
+ </a>
16
+
17
+ <!-- Toggle navigation (tablet & mobile) -->
18
+ <button class="navbar__toggler">
19
+ <span></span>
20
+ <span></span>
21
+ <span></span>
22
+ </button>
23
+
24
+ <!-- Navigation -->
25
+ <ul class="navbar__nav">
26
+ {% for item in site.data.navbar.nav %}
27
+ {% if item.button %}
28
+ <li class="navbar__nav-item navbar__nav-item--btn">
29
+ <a class="navbar__nav-btn" href="{{ item.url }}">{{ item.title }}</a>
30
+ </li>
31
+ {% else %}
32
+ {% if page.url == item.url %}
33
+ <li class="navbar__nav-item navbar__nav-item--active">
34
+ {% else %}
35
+ <li class="navbar__nav-item">
36
+ {% endif %}
37
+ {% if item.dropdown[0] %}
38
+ <a class="navbar__nav-link navbar__nav-link--dropdown" href="#">{{ item.title }}</a>
39
+ {% else %}
40
+ <a class="navbar__nav-link" href="{{ item.url }}">{{ item.title }}</a>
41
+ {% endif %}
42
+ {% if item.dropdown[0] %}
43
+ <ul class="navbar__nav-dropdown">
44
+ {% for entry in item.dropdown %}
45
+ <li class="navbar__nav-dropdown-item">
46
+ <a class="navbar__nav-dropdown-link" href="{{ entry.url }}">{{ entry.page }}</a>
47
+ </li>
48
+ {% endfor %}
49
+ </ul>
50
+ {% endif %}
51
+ </li>
52
+ {% endif %}
53
+ {% endfor %}
54
+ </ul>
55
+ <button class="navbar__switch navbar__switch--light" id="switchColorMode"></button>
56
+ </div>
57
+ </nav>