Initial site structure

This commit is contained in:
Benjamin Bach 2019-04-30 16:39:24 +02:00
parent 9edc6248c9
commit fa31f6589c
59 changed files with 1459 additions and 2 deletions

View File

@ -1,2 +0,0 @@
# arbejdsfaellesskab.dk

43
README.rst Normal file
View File

@ -0,0 +1,43 @@
arbejdsfaellesskab.dk
=====================
Hele dette projekt er på engelsk. Deal with it ┌༼▀̿ Ĺ̯▀̿༽┐
This project contains a ``hugo_site/`` folder, which is the
`Hugo <https://gohugo.io/>`__ project for static site generation (the main
site)::
.
└── hugo_site # <= Hugo project
   ├── content # <= This is where all the content lives!
   │   └── ...
   └── themes
   └── tranetheme # <= The theme
   ├── layouts # <= HTML templates
   ├── static # <= CSS etc
   └── ...
Developing the Hugo site
------------------------
We use a **static main site** because we want to archive the main conference
website as easily as possible. We are using the latest Hugo from the Debian
repositories, but the version from Ubuntu 18.04 is too old.
See below method to directly fetch 2 .deb files from a Debian mirror and
install them.
.. code-block:: console
# Install Hugo
$ wget https://mirror.csclub.uwaterloo.ca/debian/pool/main/libs/libsass/libsass1_3.5.5-2_amd64.deb -O /tmp/libsass1.deb
$ wget https://mirror.csclub.uwaterloo.ca/debian/pool/main/h/hugo/hugo_0.54.0-1_amd64.deb -O /tmp/hugo.deb
$ sudo dpkg -i /tmp/hugo.deb /tmp/libsass1.deb
# Go to project directory
$ cd hugo_site
# Run dev server
$ hugo server

View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

4
hugo_site/config.toml Normal file
View File

@ -0,0 +1,4 @@
baseURL = "http://example.org/"
languageCode = "en-us"
title = "My New Hugo Site"
theme = "tranetheme"

View File

@ -0,0 +1,10 @@
---
title: "Arbejdsfaellesskabet"
date: 2019-04-30T13:33:34+02:00
draft: false
---
# Arbejdsfællesskabet
Vi findes! Andreas, jeg skal have logo og alt sådan noget... send gerne fluks <3

View File

@ -0,0 +1,7 @@
---
title: "Ledige Pladser"
date: 2019-04-30T16:23:20+02:00
draft: false
---
Vi har 2 ledige pladser fra 1. juli. Du kan læse mere i vores opslag, som burde være tilgængeligt på denne side, men p.t. ikke er...

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
{"Target":"static/style.min.css","MediaType":"text/css","Data":{}}

View File

@ -0,0 +1,20 @@
The MIT License (MIT)
Copyright (c) 2018 YOUR_NAME_HERE
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.

View File

@ -0,0 +1,2 @@
+++
+++

View File

@ -0,0 +1,6 @@
---
job_title: "{{.job_title}}"
company_name: ""
company_logo: ""
description: ""
---

View File

@ -0,0 +1,782 @@
$navy-blue: #000;
$purple: #000;
$teal: #29a19c;
$bright-blue: #49beb7;
$orange: #F17430;
$peach: #F9B99E;
$coral: #e61c5d;
$beige: #C9C3B0;
$gray-light: #E7E7E7;
$primary-font: monospace;
$tablet: 48rem;
$desktop: 60rem;
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body,
html {
width: 100%;
color: $navy-blue;
}
body {
font-family: $primary-font;
font-size: 16px;
}
h1 {
color: $bright-blue;
text-align: center;
margin-bottom: 1rem;
font-size: 2rem;
margin-top: 3rem;
}
h2 {
color: $teal;
text-align: center;
margin-bottom: 1rem;
margin-top: 3rem;
}
h3 {
color: $purple;
text-transform: uppercase;
text-align: center;
margin-bottom: 1rem;
}
input[type="email"],
input[type="number"],
input[type="password"],
select,
input[type="text"] {
border: 0;
background-color: $gray-light;
padding: 1rem;
line-height: 1;
font-size: 16px;
font-family: $primary-font;
}
label {
display: block;
}
form {
margin: 0 auto;
}
p,
ul {
margin-bottom: 1rem;
line-height: 150%;
}
ul {
margin-left: 40px;
}
a {
color: $bright-blue;
}
a.button,
button,
input[type="submit"] {
padding: 1rem 1.25rem;
background: $bright-blue;
border: 0;
color: white;
text-decoration: none;
text-transform: uppercase;
font-weight: 700;
font-size: 16px;
font-family: $primary-font;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
display: inline-block;
transition: transform 0.2s ease-out;
&.button-red {
background: $coral;
}
&.button-orange {
background: $orange;
}
&:hover {
-webkit-transform: scale(1.05);
-moz-transform: scale(1.05);
-ms-transform: scale(1.05);
-o-transform: scale(1.05);
transform: scale(1.05);
}
}
code {
background-color: rgb(249, 242, 244);
border: 1px solid #aaa;
border-radius: 4px;
color: $coral;
font-family: monospace;
padding: 2px 4px;
}
img {
max-width: 100%;
}
.container {
max-width: 42rem;
margin: 0 auto;
}
//
// Header
.header-logo {
width: 150px;
display: block;
margin: 0rem auto;
margin-bottom: 1rem;
@media (min-width: $desktop) {
margin-right: 1rem;
margin-bottom: 0;
}
}
//
// Navigation
.header {
padding: 1rem 0;
z-index: 5;
background-color: $navy-blue;
justify-content: space-between;
background-position: center;
background-size: 400px;
//background-image: url('/static/img/fin_13.png');
align-items: center;
@media (min-width: $desktop) {
display: flex;
padding: 1rem;
}
nav ul {
display: flex;
justify-content: space-around;
flex-flow: row wrap;
align-items: center;
margin: 0;
@media (min-width: $tablet) {
flex-flow: row;
}
}
nav li {
list-style-type: none;
&.active a {
color: $coral;
}
}
nav a {
font-weight: 700;
text-align: center;
text-decoration: none;
text-transform: uppercase;
padding: 0.75rem;
letter-spacing: 1px;
line-height: 1.15;
color: white;
display: inline-block;
font-size: 14px;
@media (min-width: $desktop) {
padding: 0.85rem;
font-size: 16px;
}
&:hover {
background-color: white;
cursor: pointer;
color: $coral;
}
}
}
.header-submenu {
background: $coral;
margin: 0 0 0 0;
padding: 0;
justify-content: center;
display: flex;
flex-wrap: wrap;
li {
list-style-type: none;
&.active,
&.active:hover {
background: darken($coral, 10%);
}
&:hover {
background: darken($coral, 5%);
}
}
a {
font-weight: 700;
text-align: center;
text-decoration: none;
text-transform: uppercase;
padding: 1rem;
letter-spacing: 1px;
line-height: 1.15;
color: white;
display: inline-block;
font-size: 14px;
@media (min-width: $desktop) {
font-size: 16px;
}
}
}
.header-submenu-back {
padding: 1rem 1.25rem;
letter-spacing: 1px;
line-height: 1.15;
font-size: 14px;
display: block;
color: $coral;
border-bottom: 1px solid $beige;
font-weight: 700;
text-align: center;
text-decoration: none;
text-transform: uppercase;
@media (min-width: $desktop) {
font-size: 16px;
}
}
//
// Hero
.header-hero {
color: white;
text-align: center;
margin-bottom: 3rem;
padding: 1rem 1rem 4rem 1rem;
background-image: url('/static/img/Djangocon_eu19_live_web_BPawlik-62.jpg');
background-position: top;
background-repeat: no-repeat;
background-size: cover;
position: relative;
@media (min-width: $tablet) {
padding: 1rem 1rem 2rem 1rem;
}
@media (min-width: $desktop) {
padding: 1rem 2rem 4rem 2rem;
background-position: center;
}
.container {
position: relative;
z-index: 5;
}
&:before {
background: $navy-blue;
content: "";
position: absolute;
opacity: 0.85;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
h1 {
color: white;
padding: 2rem 0 4rem 0;
margin: 0;
line-height: 1.25;
font-size: 2rem;
@media (min-width: $tablet) {
font-size: 2.5rem;
}
}
small {
display: block;
font-weight: 500;
margin-top: 1.5rem;
color: $bright-blue;
font-size: 1.25rem;
@media (min-width: $tablet) {
font-size: 1.75rem;
}
}
p {
font-size: 1.35rem;
}
.header {
background-image: none;
background-color: transparent;
width: 100%;
position: relative;
z-index: 5;
}
.header-logo {
width: 200px;
@media (min-width: $tablet) {
width: 160px;
}
@media (min-width: $desktop) {
width: 180px;
}
}
}
//
// Markdown Content
main {
margin-top: 2rem;
margin-bottom: 4rem;
padding: 0 1rem;
a:not(.button) {
text-decoration: none;
color: $teal;
border-bottom: 1px solid $bright-blue;
&:hover {
color: $purple;
border-bottom: 1px solid $coral;
}
}
h2 {
margin-top: 2rem;
}
ul li {
margin-bottom: 0.3rem;
}
b,
strong {
color: $navy-blue;
}
table {
width: 100%;
margin-bottom: 1rem;
}
table th {
text-align: left;
}
table td {
border-bottom: 1px dotted $beige;
padding: 5px 0;
}
}
footer {
color: white;
padding: 1rem;
margin-top: 1rem;
background: $purple;
background-position: center;
//background-image: url('/static/img/fin_092.png');
background-size: 700px;
font-size: 0.85rem;
section {
display: flex;
justify-content: space-between;
flex-flow: column;
p {
margin: 1rem;
&.even {
flex: 1;
}
&.pull-up {
@media (max-width: $tablet) {
margin-top: -1rem;
br:first-child {
display: none;
}
}
}
}
@media (min-width: $tablet) {
flex-flow: row;
}
&.center {
text-align: center;
}
&.middle {
align-items: center;
}
}
}
.form-subscribe {
text-align: center;
margin: 0rem auto 3rem auto;
width: 100%;
p {
margin-bottom: 1.5rem;
}
.form-wrapper {
display: flex;
justify-content: center;
}
input {
width: 50%;
max-width: 380px;
}
}
//
// Page specific styles
//
.page-index {
margin-bottom: 2rem;
.logo {
width: 70%;
display: block;
margin: 0 auto;
}
h1 {
line-height: 1.25;
}
}
$month-offset: 9rem;
.schedule {
margin-bottom: 4rem;
margin-left: 0;
li {
list-style-type: none;
margin-bottom: 1rem;
align-items: center;
@media (min-width: $tablet) {
display: flex;
}
}
li p {
margin: 0;
width: 100%;
}
.month {
padding-right: 1rem;
text-transform: uppercase;
font-weight: 700;
color: $coral;
font-size: 0.9rem;
letter-spacing: 1px;
display: block;
@media (min-width: $tablet) {
display: inline-block;
flex-basis: $month-offset;
width: $month-offset;
margin-left: -$month-offset;
text-align: right;
}
}
li.strike {
text-decoration: line-through;
opacity: 0.6;
.month {
color: $navy-blue;
}
}
}
//
// Alerts
.alert {
background: $purple;
color: white;
padding: 1rem;
text-align: center;
margin-bottom: 2rem;
a {
color: $coral !important;
text-transform: uppercase;
margin-bottom: 1rem;
display: inline-block;
font-weight: bold;
}
}
//
// Sponsors
.sponsors {
display: flex;
max-width: 60rem;
padding: 0 1.5rem;
flex-wrap: wrap;
margin: 1rem auto;
justify-content: space-around;
align-items: center;
text-align: center;
}
.sponsor-item {
flex-basis: 100%;
margin: 1rem auto;
img {
width: 90%;
max-width: 200px;
margin: 0 auto;
}
}
.sponsors-community {
.sponsor-item {
flex-basis: 100%;
min-width: 180px;
}
}
@media (min-width: $tablet) {
.sponsor-item {
display: flex;
flex-basis: 26%;
min-height: 125px;
justify-content: center;
align-items: center;
img {
width: 100%;
max-width: 300px;
min-width: auto;
}
}
.sponsors-community {
width: 60%;
&:hover .sponsor-item {
filter: grayscale(0);
}
}
.sponsors-community .sponsor-item {
flex-basis: 30%;
transition: all .25s ease-out;
filter: grayscale(1);
}
}
//
// Talks
.talk {
padding: 2rem 0;
border-bottom: 1px solid $gray-light;
display: flex;
align-items: flex-start;
flex-wrap: wrap;
}
.talk-image {
border-radius: 50%;
margin-right: 1.5rem;
max-width: 80px;
}
.talk-content {
flex: 1;
}
.talk-title {
font-size: 1.15rem;
margin: 0;
margin-bottom: 1rem;
}
.talk-speaker {
font-weight: bold;
text-transform: uppercase;
letter-spacing: 0.05rem;
font-size: 0.85rem;
color: $coral;
}
.talk-abstract {
width: 100%;
margin-top: 1rem;
}
//
// News
.post-list {
margin: 0;
padding: 0;
}
.post-date {
text-align: center;
opacity: 0.75;
font-size: 0.95rem;
margin: 1rem 0;
}
.post-summaries {
article {
margin-bottom: 4rem;
}
}
//
// Jobs
.job-list {
padding-bottom: 80px;
margin-top: 80px;
border-top: 1px solid #e7e7e7;
}
.job {
padding: 2rem 0;
display: flex;
align-items: flex-start;
flex-wrap: wrap;
.head {
display: block;
width: 100%;
padding-bottom: 1em;
.logo {
height: 140px;
max-width: 230px;
margin: auto;
display: block;
img {
max-height: 100px;
}
a {
text-decoration: none !important;
border: 0 none;
}
}
h2 {
text-align: left;
margin-top: 0;
padding-bottom: 20px;
}
.bullets {
margin: auto;
padding-bottom: 20px;
}
}
.more-info {
margin-top: 2em;
margin-bottom: 2em;
width: 100%;
}
.apply-button {
text-align: center;
margin: auto;
margin-top: 2em;
}
h1 {
text-align: left;
}
ol {
padding-left: 20px;
}
&.item {
img {
max-width: 120px;
padding-right: 10px;
}
.description {
width: 100%;
margin-top: 1rem;
padding-bottom: 1em;
border-bottom: 1px solid #e7e7e7;
a {
text-decoration: none;
border: none;
}
}
}
}
//
// Video Embed
.videoWrapper {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
padding-top: 25px;
height: 0;
}
.videoWrapper iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

View File

@ -0,0 +1,53 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<ul class="header-submenu">
{% if user.is_authenticated %}
<li>
<a href="{% url 'index' %}">Start</a>
</li>
<li>
<a href="{% url 'ticketholders:tshirts' %}">T-shirts</a>
</li>
<li>
<a href="{% url 'ticketholders:sprints' %}">Sprints</a>
</li>
<li>
<a href="{% url 'ticketholders:workshops' %}">Workshops</a>
</li>
<li>
<a href="{% url 'ticketholders:community' %}">Community</a>
</li>
<li>
<a href="{% url 'invoices:ticket_list' %}">Invoices</a>
</li>
<li>
<a href="{% url 'ticketholders:password_change' %}">Change password</a>
</li>
<li>
<a href="{% url 'ticketholders:logout' %}">Logout</a>
</li>
{% endif %}
{% block menu %}
{% endblock %}
</ul>
<div class="container">
<main>
{% if messages %}
<div class="container" style="margin-top: 30px; margin-bottom: 30px;">
{% for message in messages %}
<div class="alert">
¤{¤{ message ¤}¤}
</div>
{% endfor %}
{% endif %}
<article>
{{ .Content }}
</article>
</main>
</div>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,24 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<main>
<h1>List of items in this section</h1>
{{ range .Pages.ByPublishDate.Reverse }}
<div class="post container">
<h2>
<a href="{{ .Permalink }}">
{{ .Title }}
</a>
</h2>
{{ .Content }}
<div class="post-date">
{{ .Date }}
</div>
</div>
{{ end }}
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,19 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<div class="container">
<main>
<article>
{{ .Content }}
<div>
<ul id="tags">
{{ range .Params.tags }}
<li><a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> </li>
{{ end }}
</ul>
</div>
</article>
</main>
</div>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,23 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
{{/*
<div class="header-hero">
{{ partial "nav.html" . }}
<div class="container">
</div>
*/}}
<main class="content page-index container">
{{ .Content }}
<h3>Nyheder</h3>
<div class="post-summaries">
{{ range where .Pages "Section" "news" }}
{{ partial "summary.html" . }}
{{ end }}
</div>
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,24 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<main>
<h1>News</h1>
{{ range .Pages.ByPublishDate.Reverse }}
<div class="post container">
<h2>
<a href="{{ .Permalink }}">
{{ .Title }}
</a>
</h2>
{{ .Content }}
<div class="post-date">
{{ .Date }}
</div>
</div>
{{ end }}
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,22 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<div class="container">
<main class="post">
<h1>{{ .Title }}</h1>
{{ .Content }}
<div class="post-date">
{{ .Date }}
</div>
<ul id="tags">
{{ range .Params.tags }}
<li><a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a> </li>
{{ end }}
</ul>
</main>
</div>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,38 @@
<footer>
<section>
{{ range .Site.Menus.main }}
<p class="even">
<b>{{ .Name }}</b>
<br/>
{{ if .HasChildren }}
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
<br/>
{{ range $index, $item := .Children }}
{{ if eq (mod (add $index 1) 4) 0 }}
</p><p class="even pull-up"><br/>
{{ end }}
<a href="{{ $item.URL | absURL }}">{{ or $item.Page.Params.menu.main.alias $item.Page.Params.menu.main.name $item.Page.Name }}</a>
<br/>
{{ end }}
{{ else }}
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
{{ end }}
</p>
{{ end }}
</section>
<section class="middle">
<p>
Legendarisk email: tranevej20nv@gmail.com
</p>
<p>
<!-- <a href="{{ .Site.SitemapAbsURL }}" target="_blank">Sitemap <small>(XML)</small></a> &middot; -->
Twitter: <a href="https://twitter.com/arbejdsfaellesskabet" target="_blank">
@arbejdsfaellesskabet
</a><br>
Help us improve the site <a href="https://git.data.coop/benjaoming/arbejdsfaellesskab.dk" target="_blank">on data.coop</a><br>
Generated on {{ dateFormat "Monday, January 2, 2006 - 15:04 MST" now.UTC }}<br>
</p>
</section>
</footer>
</body>
</html>

View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode | default "en-us" }}">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>{{ .Title }} • {{ .Site.Title }}</title>
<meta name="description" content="{{ .Params.description | default .Site.Params.description }}">
{{ with .Site.Params.author }}<meta name="author" content="{{ . }}">{{ end }}
{{ $style := resources.Get "static/style.scss" | resources.ToCSS | resources.Minify }}
<link rel="sitemap" href="{{ .Site.SitemapAbsURL }}" />
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
<link rel="stylesheet" href="/static/css/print.css" media="print">
<link href="/static/fonts/poppins/poppins.css" rel="stylesheet">
<link rel="icon" href="/static/img/favicon.ico" sizes="16x16" type="image/png">
{{ if .RSSLink -}}<link href="{{ .RSSLink }}" rel="feed" type="application/rss+xml" title="{{ .Site.Title }}">{{- end }}
{{ .Hugo.Generator }}
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@Arbejdsfaellesskabet">
<meta name="twitter:creator" content="@Arbejdsfaellesskabet">
<meta name="twitter:title" content="{{ if .Params.twitter_title }}{{ .Params.twitter_title }}{{ else }}{{ .Title }}{{ end }} • {{ .Site.Title }}" />
<meta name="twitter:description" content="{{ .Params.description | default .Site.Params.description }}">
<meta name="twitter:image" content="{{ if .Params.twitter_card }}{{ .Params.twitter_card }}{{ else }}{{ .Site.BaseURL }}static/img/{{ printf "%s" $.Site.Params.twittercardimage }}{{ end }}" />
<meta property="og:title" content="{{ if .Params.og_title }}{{ .Params.og_title }}{{ else }}{{ .Title }}{{ end }} • {{ .Site.Title }}">
<meta property="og:description" content="{{ .Params.description | default .Site.Params.description }}">
<meta property="og:image" content="{{ .Site.BaseURL }}static/img/{{ printf "%s" $.Site.Params.facebookcardimage }}">
<meta property="og:url" content=" {{ .Permalink }}">
</head>
<body>

View File

@ -0,0 +1,21 @@
<div class="job item">
<div class="talk-content">
<a href="{{ .Permalink }}">
<div class="talk-speaker">
{{ .Params.company_name }}
</div>
<p class="talk-title">
{{ .Params.job_title }}
</p>
</a>
</div>
<img src="{{ .Params.company_logo }}" />
<div class="description">
{{ .Content| plainify | truncate 250 }}
<a href="{{ .Permalink }}">Read more</a>
</div>
</div>

View File

@ -0,0 +1,40 @@
<header class="header">
<a href="{{ .Site.BaseURL }}">
Arbejdsfællesskabet
</a>
<nav>
<ul>
{{ $currentPage := . }}
{{ range .Site.Menus.main }}
<li class="{{ if (or ($currentPage.HasMenuCurrent "main" .) ($currentPage.IsMenuCurrent "main" .))}}active{{ end }}">
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
</li>
{{ end }}
</ul>
</nav>
</header>
{{ range .Site.Menus.main }}
{{ if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }}
<ul class="header-submenu">
{{ if and ($currentPage.IsMenuCurrent "main" .) (.HasChildren) }}
<li class="active">
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ if and ($currentPage.HasMenuCurrent "main" .) (not (eq $currentPage.Name .Name)) }}
<li>
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ if .HasChildren }}
{{ range .Children }}
<li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
<a href="{{ .URL | absURL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
</ul>
{{ end }}
{{ end }}

View File

@ -0,0 +1,9 @@
<div>
{{ if .Paginator.HasPrev }}
<a href="{{ .Paginator.Prev.URL }}">Previous Page</a>
{{ end }}
{{ .Paginator.PageNumber }} of {{ .Paginator.TotalPages }}
{{ if .Paginator.HasNext }}
<a href="{{ .Paginator.Next.URL }}">Next Page</a>
{{ end }}
</div>

View File

@ -0,0 +1,37 @@
<br />
<h3><a href="/sponsors/">Sponsors</a></h3>
<div class="sponsors">
{{ range $.Site.Data.sponsors }}
<a href="{{ .website }}" rel="external" target="_blank" class="sponsor-item">
{{ if .logo }}
<img src="/static/sponsors/{{ .logo }}" alt="{{ .name }}"/>
{{ else }}
{{ .name }}
{{ end }}
</a>
{{ end }}
</div>
<br />
<br />
<br />
<h3>Community Sponsors</h3>
<div class="sponsors sponsors-community">
{{ range $.Site.Data.sponsors_community }}
<a href="{{ .website }}" rel="external" target="_blank" class="sponsor-item" {{ if .extra_flex }}style="flex-basis: {{ .extra_flex }}"{{ end }}>
{{ if .logo }}
<img src="/static/sponsors/{{ .logo }}" alt="{{ .name }}"/>
{{ else }}
{{ .name }}
{{ end }}
</a>
{{ end }}
</div>
<br />
<br />
<br />

View File

@ -0,0 +1,15 @@
<article>
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
{{ range .Params.tags }}
<a href="{{ "/tags/" | relLangURL }}{{ . | urlize }}">{{ . }}</a>
{{ end }}
<div>
{{ .Summary | plainify | safeHTML }}
{{ if .Truncated }}
<a href="{{ .Permalink }}">Read more...</a>
{{ end }}
</div>
<p class="post-date">{{ .Date.Format "02 Jan 06 15:04 MST" }}</p>
</article>

View File

@ -0,0 +1,17 @@
<div class="talk">
<img src="{{ .speaker_image }}" class="talk-image" />
<div class="talk-content">
<div class="talk-speaker">
{{ .speakers }}
</div>
<p class="talk-title">
{{ .title }}
</p>
</div>
<div class="talk-abstract">
{{ .abstract | plainify | truncate 250 }}
<p><a href="/talks/{{ .slug }}">Details</a></p>
</div>
</div>

View File

@ -0,0 +1,12 @@
{{ partial "header.html" . }}
{{ partial "nav.html" . }}
<main>
{{ $paginator := .Paginate (where .Site.Pages "Type" "post") }}
{{ range $paginator.Pages }}
{{ partial "summary.html" . }}
{{ end }}
{{ partial "pagination.html" . }}
</main>
{{ partial "footer.html" . }}

View File

@ -0,0 +1,21 @@
body {
font-family: "Courier New", monospace;
font-size: 100%;
padding: 0 0;
}
h1 {
font-size: 230%;
text-align: center;
}
.all_container {
max-width: none;
margin: 0;
}
header, footer
{
display: none;
}

View File

@ -0,0 +1,88 @@
body, html {
width: 100%;
padding: 0;
margin: 0;
}
body {
font-family: "Courier New", monospace;
}
h1 {
text-align: center;
}
.header_image {
text-align: center;
}
.header_image a {
margin: 0 auto;
display: block;
}
.header_image img {
max-width: 100%;
margin: 0 auto;
}
.all_container {
max-width: 800px;
padding: 30px;
margin: 0 auto;
}
li {
margin-bottom: 7pt;
}
ul ul {
margin-top: 7pt;
}
footer {
padding-top: 50px;
overflow-wrap: break-word; /* To fix scrollbar on mobile */
}
nav {
margin: 30px auto;
width: 100%;
display: block;
}
nav ul {
list-style-type: none;
padding: 0;
display: flex;
flex-flow: row wrap;
justify-content: center;
width: 100%;
}
nav ul li {
list-style-type: none;
padding: 10px;
margin: 0;
}
nav ul li a {
background-color: #EEE;
border-radius: 5px;
padding: 0.5rem 2rem;
display: block;
text-align: center;
text-decoration: none;
color: #000;
}
/* Tablets and up */
@media (min-width: 768px) {
body {
font-size: 130%;
}
h1 {
font-size: 250%;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" viewBox="0 0 75.82 75.82"><path d="M27.21,20.16c0,3.91-2.71,6.6-6.92,6.6h-5V13.55h5C24.5,13.55,27.21,16.22,27.21,20.16ZM20.08,24a3.51,3.51,0,0,0,3.86-3.82,3.53,3.53,0,0,0-3.86-3.86H18.55V24Z"/><path d="M38.54,13.49h3.22v9a4,4,0,0,1-4.35,4.35c-2.71,0-4.61-1.58-4.61-4.55H36c0,1.13.49,1.68,1.32,1.68s1.22-.49,1.22-1.47Z"/><path d="M56.71,24.43H51.77L51,26.76H47.61L52.4,13.55h3.73L60.9,26.76H57.5Zm-2.47-7.32-1.62,4.84h3.25Z"/><path d="M27.15,31.42V44.63H23.93l-5.38-8.15v8.15H15.33V31.42h3.22l5.38,8.19V31.42Z"/><path d="M43.57,35.59H40a2.76,2.76,0,0,0-2.6-1.35C35.35,34.24,34,35.71,34,38c0,2.45,1.39,3.88,3.71,3.88a3.17,3.17,0,0,0,3.2-2.33H36.79V37.18h7v3a6.47,6.47,0,0,1-6.36,4.55A6.45,6.45,0,0,1,30.7,38a6.45,6.45,0,0,1,6.72-6.74C40.58,31.27,42.87,32.89,43.57,35.59Z"/><path d="M54.25,44.76A6.77,6.77,0,1,1,61,38,6.65,6.65,0,0,1,54.25,44.76Zm0-2.94c2.11,0,3.48-1.52,3.48-3.84s-1.37-3.84-3.48-3.84-3.5,1.49-3.5,3.84S52.1,41.82,54.25,41.82Z"/><path d="M21.46,48.84a6.13,6.13,0,0,1,6.27,4.63H24.19a2.91,2.91,0,0,0-2.77-1.69c-2,0-3.33,1.47-3.33,3.8s1.36,3.8,3.33,3.8a2.91,2.91,0,0,0,2.77-1.69h3.54a6.12,6.12,0,0,1-6.27,4.61,6.4,6.4,0,0,1-6.64-6.72A6.42,6.42,0,0,1,21.46,48.84Z"/><path d="M37.29,62.34A6.77,6.77,0,1,1,44,55.56,6.65,6.65,0,0,1,37.29,62.34Zm0-2.94c2.11,0,3.48-1.52,3.48-3.84s-1.37-3.84-3.48-3.84-3.5,1.49-3.5,3.84S35.15,59.4,37.29,59.4Z"/><path d="M60.17,49V62.2H56.95l-5.38-8.15V62.2H48.35V49h3.22l5.38,8.19V49Z"/><path d="M75.82,75.82H0V0H75.82ZM3.77,72.06H72.06V3.77H3.77Z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB