forked from oyd/ozgurkon-2021-site
parent
0a2c8caf97
commit
8f3136f955
@ -1,4 +1,6 @@ |
||||
/resources/ |
||||
public/ |
||||
node_modules/ |
||||
.firebase/ |
||||
.idea/ |
||||
.firebase/ |
@ -0,0 +1,3 @@ |
||||
[submodule "themes/devfest-theme-hugo"] |
||||
path = themes/devfest-theme-hugo |
||||
url = https://github.com/GDGToulouse/devfest-theme-hugo.git |
@ -1,155 +0,0 @@ |
||||
- name: Julien Del Rio |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/julien_delrio.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/JulienDelRio' |
||||
name: Twitter |
||||
|
||||
- name: Julien Renaux |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/julien_renaux.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/julienrenaux' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/shprink' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/julienrenaux/' |
||||
name: LinkedIn |
||||
|
||||
- name: Alexia Audevart |
||||
title: Toulouse Data Science |
||||
photoUrl: 'https://www.ekito.fr/img/team/aaudevart.jpg' |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://www.twitter.com/aaudevart' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/aaudevart' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/alexia-audevart-450b8a1/' |
||||
name: Linkedin |
||||
|
||||
- name: Kevin Davin |
||||
title: GDG Toulouse & Toulouse JUG |
||||
photoUrl: /images/people/kevin_davin.png |
||||
socials: |
||||
- icon: gplus |
||||
link: 'https://plus.google.com/+KevinDavin' |
||||
name: Google+ |
||||
- icon: twitter |
||||
link: 'https://twitter.com/davinkevin' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/davinkevin/' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: www.linkedin.com/in/davinkevin |
||||
name: LinkedIn |
||||
|
||||
- name: Aurélie Vache |
||||
title: Duchess France / Toulouse Data Science |
||||
photoUrl: /images/people/aurelie_vache.png |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://www.twitter.com/aurelievache' |
||||
name: Twitter |
||||
- icon: website |
||||
link: 'http://scraly.com/' |
||||
name: Site |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/aurelievache' |
||||
name: LinkedIn |
||||
- icon: github |
||||
link: 'https://github.com/scraly' |
||||
name: Github |
||||
|
||||
- name: Maxime Pawlak |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/maxime_pawlak.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/Maxime_Pawlak' |
||||
name: Twitter |
||||
|
||||
- name: Michaël Bitard |
||||
title: Electron liiiibre |
||||
photoUrl: /images/people/michael_bitard.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/bitardmichael' |
||||
name: Twitter |
||||
|
||||
- name: Didier Plaindoux |
||||
title: Toulouse JUG |
||||
photoUrl: /images/people/didier_plaindoux.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/dplaindoux' |
||||
name: Twitter |
||||
|
||||
- name: Vincent Ferries |
||||
title: Toulouse JUG |
||||
photoUrl: >- |
||||
https://pbs.twimg.com/profile_images/697834407407849472/bzv1VZJm_400x400.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/VincentFERRIES' |
||||
name: Twitter |
||||
|
||||
- name: Igor Laborie |
||||
title: Folivoraphile |
||||
photoUrl: >- |
||||
https://pbs.twimg.com/profile_images/3404066863/94e02f3bca9b038c4546f4e42ed05bc6.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/ilaborie' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/ilaborie' |
||||
name: Github |
||||
|
||||
- name: Emmanuel Vinas |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/emmanuel_vinas.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/EmmanuelVinas' |
||||
name: Twitter |
||||
|
||||
- name: Lionel Porcheron |
||||
title: Toulouse DevOps |
||||
photoUrl: /images/people/lionel_porcheron.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/lporcheron' |
||||
name: Twitter |
||||
|
||||
- name: Michaël Pailloncy |
||||
title: Toulouse JAM / JUG |
||||
photoUrl: 'https://s.gravatar.com/avatar/1b42d100589ea585ce9a1f359b8d4496?s=160' |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/mpailloncy' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/mpailloncy' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/michael-pailloncy-21119827/' |
||||
name: LinkedIn |
||||
|
||||
- name: Elodie Lerare |
||||
title: '' |
||||
photoUrl: images/people/elodie_lerare.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/EloBlou' |
||||
name: Twitter |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/elodie-lerare-223a6b41/' |
||||
name: LinkedIn |
@ -0,0 +1,158 @@ |
||||
title: Équipe |
||||
type: team |
||||
members: |
||||
- name: Julien Del Rio |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/julien_delrio.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/JulienDelRio' |
||||
name: Twitter |
||||
|
||||
- name: Julien Renaux |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/julien_renaux.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/julienrenaux' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/shprink' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/julienrenaux/' |
||||
name: LinkedIn |
||||
|
||||
- name: Alexia Audevart |
||||
title: Toulouse Data Science |
||||
photoUrl: 'https://www.ekito.fr/img/team/aaudevart.jpg' |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://www.twitter.com/aaudevart' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/aaudevart' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/alexia-audevart-450b8a1/' |
||||
name: Linkedin |
||||
|
||||
- name: Kevin Davin |
||||
title: GDG Toulouse & Toulouse JUG |
||||
photoUrl: /images/people/kevin_davin.png |
||||
socials: |
||||
- icon: gplus |
||||
link: 'https://plus.google.com/+KevinDavin' |
||||
name: Google+ |
||||
- icon: twitter |
||||
link: 'https://twitter.com/davinkevin' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/davinkevin/' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: www.linkedin.com/in/davinkevin |
||||
name: LinkedIn |
||||
|
||||
- name: Aurélie Vache |
||||
title: Duchess France / Toulouse Data Science |
||||
photoUrl: /images/people/aurelie_vache.png |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://www.twitter.com/aurelievache' |
||||
name: Twitter |
||||
- icon: website |
||||
link: 'http://scraly.com/' |
||||
name: Site |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/aurelievache' |
||||
name: LinkedIn |
||||
- icon: github |
||||
link: 'https://github.com/scraly' |
||||
name: Github |
||||
|
||||
- name: Maxime Pawlak |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/maxime_pawlak.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/Maxime_Pawlak' |
||||
name: Twitter |
||||
|
||||
- name: Michaël Bitard |
||||
title: Electron liiiibre |
||||
photoUrl: /images/people/michael_bitard.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/bitardmichael' |
||||
name: Twitter |
||||
|
||||
- name: Didier Plaindoux |
||||
title: Toulouse JUG |
||||
photoUrl: /images/people/didier_plaindoux.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/dplaindoux' |
||||
name: Twitter |
||||
|
||||
- name: Vincent Ferries |
||||
title: Toulouse JUG |
||||
photoUrl: >- |
||||
https://pbs.twimg.com/profile_images/697834407407849472/bzv1VZJm_400x400.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/VincentFERRIES' |
||||
name: Twitter |
||||
|
||||
- name: Igor Laborie |
||||
title: Folivoraphile |
||||
photoUrl: >- |
||||
https://pbs.twimg.com/profile_images/3404066863/94e02f3bca9b038c4546f4e42ed05bc6.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/ilaborie' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/ilaborie' |
||||
name: Github |
||||
|
||||
- name: Emmanuel Vinas |
||||
title: GDG Toulouse |
||||
photoUrl: /images/people/emmanuel_vinas.jpeg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/EmmanuelVinas' |
||||
name: Twitter |
||||
|
||||
- name: Lionel Porcheron |
||||
title: Toulouse DevOps |
||||
photoUrl: /images/people/lionel_porcheron.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/lporcheron' |
||||
name: Twitter |
||||
|
||||
- name: Michaël Pailloncy |
||||
title: Toulouse JAM / JUG |
||||
photoUrl: 'https://s.gravatar.com/avatar/1b42d100589ea585ce9a1f359b8d4496?s=160' |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/mpailloncy' |
||||
name: Twitter |
||||
- icon: github |
||||
link: 'https://github.com/mpailloncy' |
||||
name: Github |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/michael-pailloncy-21119827/' |
||||
name: LinkedIn |
||||
|
||||
- name: Elodie Lerare |
||||
title: '' |
||||
photoUrl: images/people/elodie_lerare.jpg |
||||
socials: |
||||
- icon: twitter |
||||
link: 'https://twitter.com/EloBlou' |
||||
name: Twitter |
||||
- icon: linkedin |
||||
link: 'https://www.linkedin.com/in/elodie-lerare-223a6b41/' |
||||
name: LinkedIn |
@ -1,20 +0,0 @@ |
||||
{ |
||||
"name": "proto-site-2019", |
||||
"version": "1.0.0", |
||||
"main": "index.js", |
||||
"author": "Igor Laborie <ilaborie@gmail.com>", |
||||
"license": "MIT", |
||||
"scripts": { |
||||
"extract-data": "node tools/extract-data.js", |
||||
"speakers": "node tools/generate-speakers.js", |
||||
"sessions": "node tools/generate-sessions.js", |
||||
"partners": "node tools/generate-partners.js", |
||||
"publish": "firebase deploy", |
||||
"publish:prod": "echo 'TODO: firebase deploy -P devfest-prod'" |
||||
}, |
||||
"devDependencies": { |
||||
"firebase-tools": "^6.2.2", |
||||
"js-yaml": "^3.12.0", |
||||
"slugify": "^1.3.4" |
||||
} |
||||
} |
@ -0,0 +1 @@ |
||||
Subproject commit 532b06692705112b3f84a1834b8c32ec3bd24d1c |
@ -1,6 +0,0 @@ |
||||
<article class="error"> |
||||
<h1> |
||||
This is not the page you were looking for |
||||
</h1> |
||||
</article> |
||||
|
@ -1,20 +0,0 @@ |
||||
The MIT License (MIT) |
||||
|
||||
Copyright (c) 2018 GDGToulouse |
||||
|
||||
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. |
@ -1,4 +0,0 @@ |
||||
# Devfest Toulouse Theme |
||||
|
||||
|
||||
TODO: add more info here |
@ -1,9 +0,0 @@ |
||||
--- |
||||
title: "{{ replace .TranslationBaseName "-" " " | title }}" |
||||
date: {{ .Date }} |
||||
image: "a header image" |
||||
brief: "A short brief" |
||||
draft: true |
||||
--- |
||||
|
||||
TODO |
@ -1,6 +0,0 @@ |
||||
--- |
||||
title: "{{ replace .TranslationBaseName "-" " " | title }}" |
||||
--- |
||||
|
||||
{{< hero >}} |
||||
{{< /hero >}} |
@ -1,15 +0,0 @@ |
||||
--- |
||||
title: "{{ replace .TranslationBaseName "-" " " | title }}" |
||||
date: {{ .Date }} |
||||
type: partner |
||||
category: platinium |
||||
website: 'https://www.airbus.com/' |
||||
logo: /images/partners/logo-airbus.png |
||||
socials: |
||||
- name: twitter |
||||
url: 'https://twitter.com/airbus' |
||||
- name: linkedin |
||||
url: 'https://www.linkedin.com/in/airbus' |
||||
--- |
||||
|
||||
TODO Description |
@ -1,6 +0,0 @@ |
||||
// Helpers
|
||||
const $ = selector => |
||||
document.querySelector(selector); |
||||
|
||||
const $$ = selector => |
||||
Array.from(document.querySelectorAll(selector)); |
@ -1,6 +0,0 @@ |
||||
// Shuffle
|
||||
$$('ul.shuffle').forEach(listElt => { |
||||
for (let i = listElt.children.length; i >= 0; i--) { |
||||
listElt.appendChild(listElt.children[Math.random() * i | 0]); |
||||
} |
||||
}); |
@ -1,16 +0,0 @@ |
||||
// Subscription
|
||||
$$('form.subscribe').forEach(formElt => { |
||||
console.log('subscribe', formElt); |
||||
formElt.onsubmit = () => { |
||||
const values = Array.from(formElt.elements) |
||||
.reduce( |
||||
(acc, elt) => { |
||||
if (elt.name) { |
||||
acc[elt.name] = elt.value; |
||||
} |
||||
return acc; |
||||
}, |
||||
{}); |
||||
subscribe(values); |
||||
}; |
||||
}); |
@ -1,95 +0,0 @@ |
||||
:root { |
||||
--primary: #673AB7; |
||||
--primary-txt: #fff; |
||||
|
||||
--base: #FFF; |
||||
--base-text: #424242; |
||||
--base-secondary-text: #757575; |
||||
|
||||
--darken-1: rgba(0, 0, 0, .125); |
||||
--darken-2: rgba(0, 0, 0, .25); |
||||
--darken-3: rgba(0, 0, 0, .5); |
||||
|
||||
--lighten-1: hsla(0, 100%, 100%, .125); |
||||
--lighten-2: hsla(0, 100%, 100%, .25); |
||||
--lighten-3: hsla(0, 100%, 100%, .5); |
||||
|
||||
--color-hero: ghostwhite; |
||||
|
||||
--color-platium: #73737a; |
||||
--color-gold: #b7935b; |
||||
--color-error: firebrick; |
||||
|
||||
--space-1: .125rem; |
||||
--space-2: .25rem; |
||||
--space-3: .5rem; |
||||
--space-4: 1rem; |
||||
|
||||
--container-margin: 10vw; |
||||
--toolbar-height: 3rem; |
||||
|
||||
--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, |
||||
Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; |
||||
/*--font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;*/ |
||||
|
||||
/* Tags */ |
||||
/*from https://github.com/d3/d3-scale-chromatic#schemePastel2*/ |
||||
--tag1: #b3e2cd; |
||||
--tag2: #fdcdac; |
||||
--tag3: #cbd5e8; |
||||
--tag4: #f4cae4; |
||||
--tag5: #e6f5c9; |
||||
--tag6: #fff2ae; |
||||
--tag7: #f1e2cc; |
||||
--tag8: #cccccc; |
||||
|
||||
--native-mobile-apps: var(--tag2); |
||||
--web: var(--tag6); |
||||
--method-tools: var(--tag5); |
||||
--big-data-ml-ai: var(--tag3); |
||||
--iot: var(--tag7); |
||||
--cloud: var(--tag4); |
||||
--languages: var(--tag1); |
||||
--wtf: var(--tag7); |
||||
--general: var(--tag8); |
||||
|
||||
/* Partners */ |
||||
--partner-support-height: 60px; |
||||
--partner-platinum-height: calc(var(--partner-support-height) * 3); |
||||
--partner-gold-height: calc(var(--partner-support-height) * 2); |
||||
|
||||
--animation: 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
||||
|
||||
--extruded-dark: 1px 0 0 var(--darken-3); |
||||
--extruded-light: 1px 0 0 var(--lighten-3); |
||||
|
||||
--box-shadow-1: 0 0 2px 0 rgba(0, 0, 0, 0.07), 0 2px 2px 0 rgba(0, 0, 0, 0.15); |
||||
--box-shadow-2: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12); |
||||
} |
||||
|
||||
@import "partials/base"; |
||||
@import "partials/header"; |
||||
@import "partials/main"; |
||||
@import "partials/footer"; |
||||
@import "partials/buttons"; |
||||
@import "partials/socials"; |
||||
@import "partials/jumbo"; |
||||
@import "partials/hero"; |
||||
@import "partials/table_of_contents"; |
||||
@import "partials/speakers"; |
||||
@import "partials/tickets"; |
||||
@import "partials/partners"; |
||||
@import "partials/tags"; |
||||
@import "partials/type"; |
||||
|
||||
@import "pages/home"; |
||||
@import "pages/sessions"; |
||||
@import "pages/session"; |
||||
@import "pages/parteners"; |
||||
@import "pages/speakers"; |
||||
@import "pages/speaker"; |
||||
@import "pages/blogs"; |
||||
@import "pages/blog"; |
||||
@import "pages/team"; |
||||
@import "pages/faq"; |
||||
@import "pages/code_of_conduct"; |
@ -1,53 +0,0 @@ |
||||
.page.blog { |
||||
|
||||
.hero { |
||||
.img { |
||||
padding: var(--container-margin); |
||||
background-repeat: no-repeat; |
||||
background-size: cover; |
||||
background-position: center center; |
||||
|
||||
text-shadow: 1px 0 0 var(--lighten-3); |
||||
} |
||||
|
||||
h1 { |
||||
color: var(--primary); |
||||
padding-left: 0; |
||||
padding-right: 0; |
||||
small { |
||||
display: block; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.content { |
||||
padding-left: 0; |
||||
padding-right: 0; |
||||
margin: 2rem var(--container-margin); |
||||
|
||||
img { |
||||
max-width: 100%; |
||||
} |
||||
|
||||
h1, h2, h3, h4, h5, h6 { |
||||
color: var(--primary); |
||||
} |
||||
|
||||
p { |
||||
margin-left: var(--space-4); |
||||
text-align: justify; |
||||
|
||||
&::first-letter { |
||||
margin-left: var(--space-4); |
||||
} |
||||
} |
||||
|
||||
ul { |
||||
margin-left: 2rem; |
||||
|
||||
li { |
||||
line-height: 1.25; |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,65 +0,0 @@ |
||||
.section.blog { |
||||
|
||||
|
||||
main > section { |
||||
padding-left: 0; |
||||
padding-right: 0; |
||||
margin: 2rem var(--container-margin); |
||||
} |
||||
|
||||
|
||||
.blogs { |
||||
display: grid; |
||||
grid-gap: var(--space-4); |
||||
|
||||
a { |
||||
text-decoration: none; |
||||
padding: var(--space-4); |
||||
border-radius: var(--space-3); |
||||
min-height: 25vw; |
||||
display: grid; |
||||
grid-template-columns: auto 1fr; |
||||
grid-template-rows: auto 1fr; |
||||
grid-gap: var(--space-4); |
||||
color: inherit; |
||||
border: thin solid var(--darken-1); |
||||
|
||||
box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); |
||||
transition: box-shadow var(--animation); |
||||
|
||||
.img { |
||||
display: inline-block; |
||||
background-position: center center; |
||||
background-size: cover; |
||||
--size: 6rem; |
||||
height: var(--size); |
||||
width: var(--size); |
||||
border-radius: var(--space-2); |
||||
} |
||||
|
||||
.info { |
||||
justify-content: center; |
||||
.reading { |
||||
align-self: flex-end; |
||||
|
||||
&::after { |
||||
content: ' min.'; |
||||
} |
||||
} |
||||
|
||||
.date { |
||||
align-self: flex-start; |
||||
} |
||||
} |
||||
|
||||
p { |
||||
grid-column: 1 / -1; |
||||
} |
||||
|
||||
&:hover, &:focus { |
||||
box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
@ -1,18 +0,0 @@ |
||||
.page.code-of-conduct .content { |
||||
|
||||
p { |
||||
margin-left: var(--space-4); |
||||
text-align: justify; |
||||
|
||||
&::first-letter { |
||||
margin-left: var(--space-4); |
||||
} |
||||
} |
||||
|
||||
ul { |
||||
margin-left: 2rem; |
||||
li { |
||||
line-height: 1.25; |
||||
} |
||||
} |
||||
} |
@ -1,10 +0,0 @@ |
||||
/* FAQ */ |
||||
.page.faq .content { |
||||
h1, h2, h3, h4, h5, h6 { |
||||
color: var(--primary); |
||||
} |
||||
|
||||
h3, h4, h5, h6, ul, ol, p { |
||||
margin-left: calc(var(--container-margin) - 2rem); |
||||
} |
||||
} |
@ -1,134 +0,0 @@ |
||||
.home { |
||||
|
||||
main > section { |
||||
margin: 0; |
||||
padding: 2rem; |
||||
} |
||||
|
||||
section > h2 { |
||||
margin-bottom: 1.5rem; |
||||
padding: 0; |
||||
font-size: 2rem; |
||||
line-height: 1.875rem; |
||||
font-weight: 300; |
||||
} |
||||
|
||||
section.info > div { |
||||
display: flex; |
||||
|
||||
.numbers { |
||||
margin: 0 2rem; |
||||
min-width: 33vw; |
||||
justify-content: center; |
||||
display: grid; |
||||
grid-template-columns: repeat(2, 1fr); |
||||
grid-column-gap: 2rem; |
||||
width: 100%; |
||||
} |
||||
|
||||
.number { |
||||
strong { |
||||
font-size: 3.5rem; |
||||
font-weight: 100; |
||||
|
||||
&::after { |
||||
content: ''; |
||||
display: block; |
||||
height: .125rem; |
||||
width: 2rem; |
||||
background-color: var(--primary); |
||||
} |
||||
} |
||||
|
||||
div { |
||||
margin: var(--space-1) 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
section.speakers { |
||||
ul { |
||||
padding-left: 0; |
||||
list-style: none; |
||||
display: flex; |
||||
justify-content: space-around; |
||||
align-items: flex-start; |
||||
flex-wrap: wrap; |
||||
|
||||
li { |
||||
margin: var(--space-4); |
||||
} |
||||
|
||||
// Keep only 4 first speakers |
||||
li:nth-child(n+5) { |
||||
display: none; |
||||
} |
||||
} |
||||
} |
||||
|
||||
section.subscribe { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
} |
||||
|
||||
section.tickets { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
} |
||||
|
||||
section.location { |
||||
padding: 0; |
||||
position: relative; |
||||
background: var(--darken-1); |
||||
font-weight: 300; |
||||
|
||||
.map { |
||||
display: block; |
||||
height: 664px; |
||||
background-position: center center; |
||||
background-size: cover; |
||||
} |
||||
|
||||
.description { |
||||
display: inline-block; |
||||
padding: var(--space-4); |
||||
width: 400px; |
||||
position: absolute; |
||||
bottom: -2rem; |
||||
right: 2rem; |
||||
background-color: var(--primary); |
||||
color: var(--primary-txt); |
||||
|
||||
.direction { |
||||
display: flex; |
||||
align-items: center; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@media (max-width: 60rem) { |
||||
|
||||
.home { |
||||
.jumbo .inner h1 { |
||||
img { |
||||
max-width: 100%; |
||||
} |
||||
font-size: 1.5rem; |
||||
} |
||||
|
||||
section.info>div { |
||||
flex-direction: column; |
||||
} |
||||
|
||||
section.location .description { |
||||
position: relative; |
||||
top: unset; |
||||
bottom: unset; |
||||
right: unset; |
||||
width: 100%; |
||||
} |
||||
} |
||||
} |
@ -1,9 +0,0 @@ |
||||
.page.partners { |
||||
|
||||
|
||||
.content { |
||||
img { |
||||
width: 50vw; |
||||
} |
||||
} |
||||
} |
@ -1,141 +0,0 @@ |
||||
|
||||
.talk { |
||||
.complexity::before { |
||||
content: 'Niveau : '; |
||||
} |
||||
|
||||
.type::before { |
||||
content: 'Type : '; |
||||
} |
||||
|
||||
.type::after { |
||||
font-weight: 100; |
||||
content: ' (' var(--duration, '') ' min.)'; |
||||
} |
||||
|
||||
.speakers { |
||||
.speaker { |
||||
display: flex; |
||||
align-items: center; |
||||
padding: var(--space-1) var(--space-3); |
||||
--img-size: 2rem; |
||||
|
||||
.speaker-img { |
||||
--img-size: 3rem; |
||||
height: var(--img-size); |
||||
min-width: var(--img-size); |
||||
border-radius: 100%; |
||||
background-size: cover; |
||||
margin-right: var(--space-4); |
||||
} |
||||
|
||||
.info { |
||||
display: flex; |
||||
flex-direction: column; |
||||
} |
||||
|
||||
.speaker-company { |
||||
img { |
||||
height: 2rem; |
||||
} |
||||
|
||||
figcaption { |
||||
display: none; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
.page.talks { |
||||
|
||||
.talk { |
||||
display: grid; |
||||
grid-template-columns: 2fr 1fr; |
||||
grid-gap: var(--space-3); |
||||
//grid |
||||
|
||||
header { |
||||
grid-column: 1 / -1; |
||||
border-radius: var(--space-2); |
||||
padding: var(--space-2); |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
h1 { |
||||
flex-grow: 1; |
||||
} |
||||
|
||||
.tags { |
||||
margin-right: 1ch; |
||||
white-space: nowrap; |
||||
} |
||||
} |
||||
|
||||
.content { |
||||
margin: var(--space-4) 0; |
||||
border-top: thin solid var(--darken-1); |
||||
border-bottom: thin solid var(--darken-1); |
||||
} |
||||
|
||||
.speakers { |
||||
list-style: none; |
||||
padding: 0; |
||||
align-self: start; |
||||
border-radius: var(--space-2); |
||||
|
||||
.speaker { |
||||
margin: var(--space-4) 0; |
||||
border: thin solid var(--darken-1); |
||||
box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); |
||||
transition: box-shadow var(--animation); |
||||
border-radius: var(--space-2); |
||||
|
||||
&:hover, &:focus { |
||||
box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); |
||||
} |
||||
|
||||
display: grid; |
||||
grid-template-columns: 4rem 1fr auto; |
||||
grid-auto-flow: dense; |
||||
text-decoration: none; |
||||
color: inherit; |
||||
|
||||
p { |
||||
grid-column: 1 / -1; |
||||
} |
||||
|
||||
figure { |
||||
grid-column: 3; |
||||
padding: var(--space-2); |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: flex-end; |
||||
|
||||
img { |
||||
order: 2; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.media { |
||||
grid-column: 1 / -1; |
||||
|
||||
a { |
||||
padding: var(--space-3) 0; |
||||
font-size: 1rem; |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
@media (max-width: 60rem) { |
||||
.page.talks { |
||||
.talk { |
||||
grid-template-columns: 1fr; |
||||
} |
||||
} |
||||
} |
@ -1,63 +0,0 @@ |
||||
.section.talks, .taxonomy.tags { |
||||
|
||||
ul.talks { |
||||
list-style: none; |
||||
padding: 0; |
||||
margin: 0; |
||||
display: grid; |
||||
grid-gap: 2rem; |
||||
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); |
||||
|
||||
a { |
||||
border: thin solid var(--darken-1); |
||||
box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); |
||||
transition: box-shadow var(--animation); |
||||
border-radius: var(--space-2); |
||||
display: flex; |
||||
flex-direction: column; |
||||
text-decoration: none; |
||||
color: inherit; |
||||
height: 100%; |
||||
|
||||
&:hover, &:focus { |
||||
box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); |
||||
} |
||||
|
||||
h2, .info { |
||||
padding: var(--space-4); |
||||
} |
||||
|
||||
h2 { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
} |
||||
|
||||
hr { |
||||
width: calc(100% - var(--space-3)); |
||||
margin: 0 auto; |
||||
} |
||||
|
||||
.info { |
||||
flex-grow: 1; |
||||
|
||||
.tags { |
||||
float: right; |
||||
} |
||||
|
||||
} |
||||
|
||||
.speakers { |
||||
border: thin solid transparent; |
||||
border-radius: var(--space-2); |
||||
background: var(--base); |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.speaker + .speaker { |
||||
border-top: thin solid var(--darken-1); |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
@ -1,87 +0,0 @@ |
||||
.page.speakers { |
||||
|
||||
.hero { |
||||
header, .description { |
||||
padding: var(--space-4) var(--container-margin); |
||||
} |
||||
|
||||
header { |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
.speaker-img { |
||||
--size: 6rem; |
||||
height: var(--size); |
||||
min-width: var(--size); |
||||
border-radius: 100%; |
||||
background-size: cover; |
||||
box-shadow: 0 0 var(--space-3) var(--darken-3); |
||||
margin-right: var(--space-4); |
||||
} |
||||
|
||||
h1 { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
ul.socials { |
||||
display: flex; |
||||
list-style: none; |
||||
padding: 0; |
||||
margin: 0; |
||||
font-size: 1.25em; |
||||
|
||||
li { |
||||
padding-right: var(--space-4); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
.description { |
||||
.talks { |
||||
padding-left: 0; |
||||
list-style: none; |
||||
|
||||
.talk { |
||||
border: thin solid var(--darken-1); |
||||
display: inline-flex; |
||||
padding: var(--space-2); |
||||
border-radius: var(--space-1); |
||||
|
||||
.tags, .language { |
||||
margin-right: 1ch; |
||||
} |
||||
.tags { |
||||
white-space: nowrap; |
||||
align-self: center; |
||||
} |
||||
|
||||
&.tag- { |
||||
display: none; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
section.speaker { |
||||
|
||||
header { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
} |
||||
|
||||
.speaker-company { |
||||
margin: var(--space-3) 0; |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
img { |
||||
height: 4rem; |
||||
margin-right: var(--space-4); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,41 +0,0 @@ |
||||
.section.speakers { |
||||
|
||||
ul.speakers { |
||||
list-style: none; |
||||
padding: 0; |
||||
margin: 0; |
||||
display: grid; |
||||
grid-gap: 2rem; |
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
||||
|
||||
li a.speaker { |
||||
padding: var(--space-4); |
||||
border: thin solid var(--darken-1); |
||||
box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); |
||||
transition: box-shadow var(--animation); |
||||
border-radius: var(--space-2); |
||||
display: flex; |
||||
flex-direction: row; |
||||
height: 100%; |
||||
|
||||
.speaker-img { |
||||
margin-right: var(--space-4); |
||||
} |
||||
|
||||
.speaker-company { |
||||
margin-top: var(--space-3); |
||||
order: 2; |
||||
text-align: center; |
||||
|
||||
figcaption { |
||||
display: block; |
||||
} |
||||
} |
||||
|
||||
&:hover, &:focus { |
||||
box-shadow: var(--space-2) var(--space-2) var(--space-2) var(--darken-3); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
@ -1,50 +0,0 @@ |
||||
.page.team { |
||||
ul.members { |
||||
padding: 0; |
||||
margin: 0; |
||||
display: grid; |
||||
grid-gap: 2rem; |
||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
||||
|
||||
li { |
||||
display: flex; |
||||
|
||||
.photo { |
||||
--size: 6rem; |
||||
box-shadow: 0 0 0 var(--space-2) var(--darken-2); |
||||
height: var(--size); |
||||
min-width: var(--size); |
||||
border-radius: 100%; |
||||
background-size: cover; |
||||
|
||||
margin: var(--space-2); |
||||
} |
||||
|
||||
.label { |
||||
display: flex; |
||||
margin-left: var(--space-3); |
||||
flex-direction: column; |
||||
justify-content: center; |
||||
} |
||||
|
||||
ul.socials { |
||||
list-style: none; |
||||
display: flex; |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 1.5em; |
||||
|
||||
li { |
||||
filter: grayscale(1); |
||||
transition: filter var(--animation); |
||||
|
||||
&:hover, |
||||
&:focus { |
||||
filter: grayscale(0); |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
@ -1,62 +0,0 @@ |
||||
html { |
||||
box-sizing: border-box; |
||||
font-family: var(--font-family); |
||||
background: var(--darken-1); |
||||
} |
||||
|
||||
*, |
||||
*:before, |
||||
*:after { |
||||
box-sizing: inherit; |
||||
} |
||||
|
||||
*:focus { |
||||
outline: thin dotted var(--darken-3); |
||||
outline-offset: var(--space-1); |
||||
} |
||||
|
||||
body { |
||||
background: var(--base); |
||||
color: var(--base-text); |
||||
margin: var(--toolbar-height) 0 0; |
||||
display: flex; |
||||
flex-direction: column; |
||||
min-height: calc(100vh - var(--toolbar-height)); |
||||
} |
||||
|
||||
h1, h2, h3, h4, h5, h6 { |
||||
margin: 0; |
||||
font-weight: normal; |
||||
} |
||||
|
||||
hr { |
||||
border-color: var(--darken-1); |
||||
opacity: .25; |
||||
} |
||||
|
||||
p { |
||||
line-height: 1.25; |
||||
} |
||||
|
||||
a, a:visited { |
||||
color: inherit; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
.content {🇬🇧 |
||||
a, a:visited { |
||||
color: var(--primary); |
||||
} |
||||
} |
||||
|
||||
.language.english::before { |
||||
content: '🇬🇧'; |
||||
} |
||||
|
||||
.visually-hidden { /* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility */ |
||||
position: absolute !important; |
||||
height: 1px; width: 1px; |
||||
overflow: hidden; |
||||
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ |
||||
clip: rect(1px, 1px, 1px, 1px); |
||||
} |
@ -1,49 +0,0 @@ |
||||
button, a.btn, span.btn { |
||||
display: inline-block; |
||||
border: thin solid var(--darken-2); |
||||
background: var(--darken-1); |
||||
padding: var(--space-3); |
||||
color: inherit; |
||||
text-transform: uppercase; |
||||
text-decoration: none; |
||||
font-size: .875rem; |
||||
font-weight: 100; |
||||
cursor: pointer; |
||||
text-shadow: var(--extruded-light); |
||||
|
||||
&.primary { |
||||
background-color: var(--primary); |
||||
color: var(--primary-txt); |
||||
text-shadow: var(--extruded-dark); |
||||
} |
||||
|
||||
&.btn-icon-only { |
||||
border-radius: 50%; |
||||
margin-left: 1ch; |
||||
padding: var(--space-2); |
||||
border-color: transparent; |
||||
|
||||
&::before { |
||||
--size: 1.5rem; |
||||
width: var(--size); |
||||
height: var(--size); |
||||
display: inline-block; |
||||
content: ''; |
||||
background-repeat: no-repeat; |
||||
} |
||||
} |
||||
|
||||
// Icons |
||||
&.icon-direction::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="white" d="M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"></path></svg>'); |
||||
} |
||||
|
||||
} |
||||
|
||||
form:invalid button, |
||||
button[aria-disabled], |
||||
a.btn[aria-disabled], |
||||
span.btn[aria-disabled] { |
||||
opacity: .5; |
||||
cursor: not-allowed; |
||||
} |
@ -1,124 +0,0 @@ |
||||
body > footer { |
||||
background-color: var(--darken-1); |
||||
color: var(--base-secondary-text); |
||||
padding: var(--space-4) var(--container-margin); |
||||
font-weight: 200; |
||||
|
||||
a:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
// Header |
||||
.footer-header { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
font-weight: 300; |
||||
flex-wrap: wrap; |
||||
|
||||
header { |
||||
margin-right: var(--space-2); |
||||
} |
||||
|
||||
& > div { |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
ul { |
||||
padding: 0; |
||||
margin: 0; |
||||
list-style: none; |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
li { |
||||
display: inline-block; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.share, .blog, .follow { |
||||
text-transform: uppercase; |
||||
} |
||||
|
||||
.follow a[class*='social-'] { |
||||
filter: grayscale(1); |
||||
transition: filter var(--animation); |
||||
|
||||
&:hover, &:focus { |
||||
filter: grayscale(0); |
||||
} |
||||
} |
||||
|
||||
.blog a { |
||||
text-decoration: underline; |
||||
} |
||||
} |
||||
|
||||
// Content |
||||
.footer-content { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
flex-wrap: wrap; |
||||
|
||||
section { |
||||
header { |
||||
font-size: 1.125rem; |
||||
font-weight: 400; |
||||
} |
||||
|
||||
ul { |
||||
display: flex; |
||||
flex-direction: column; |
||||
list-style: none; |
||||
padding: 0; |
||||
margin: var(--space-3) 0; |
||||
font-weight: 100; |
||||
|
||||
li { |
||||
margin: var(--space-1) 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
section.form form { |
||||
display: flex; |
||||
flex-direction: column; |
||||
|
||||
input { |
||||
background: transparent; |
||||
border: none; |
||||
border-bottom: var(--space-1) solid var(--darken-2); |
||||
transition: border var(--animation); |
||||
margin: var(--space-3) 0; |
||||
outline: thin dotted transparent; |
||||
font-size: 1rem; |
||||
line-height: 1.5rem; |
||||
padding: var(--space-2); |
||||
border-radius: var(--space-1); |
||||
color: var(--base-text); |
||||
|
||||
&::placeholder { |
||||
color: var(--darken-3); |
||||
} |
||||
|
||||
&:focus { |
||||
border-bottom-color: var(--primary); |
||||
} |
||||
|
||||
&:invalid { |
||||
border-bottom-color: var(--color-error); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Footer |
||||
.footer-footer { |
||||
display: flex; |
||||
justify-content: space-between; |
||||
|
||||
img { |
||||
height: 2rem; |
||||
} |
||||
} |
||||
} |
@ -1,103 +0,0 @@ |
||||
body > header { |
||||
|
||||
position: fixed; |
||||
top: 0; |
||||
z-index: 100; |
||||
width: 100vw; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
min-height: var(--toolbar-height); |
||||
padding: 0 var(--container-margin); |
||||
box-shadow: 0 var(--space-1) var(--space-2) var(--darken-1); |
||||
background: var(--primary); |
||||
color: var(--primary-txt); |
||||
|
||||
.logo img { |
||||
height: calc(var(--toolbar-height) - (2 * var(--space-2))); |
||||
} |
||||
|
||||
label { |
||||
display: none; |
||||
--size: 1.5rem; |
||||
height: var(--size); |
||||
width: var(--size); |
||||
opacity: .5; |
||||
padding: .1em; |
||||
border: var(--space-2) solid transparent; // Extending the hit area |
||||
outline-offset: var(--space-2); |
||||
background-size: cover; |
||||
background-repeat: no-repeat; |
||||
background-position: center center; |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="white" d="M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"></path></svg>'); |
||||
|
||||
&:hover, &:focus { |
||||
opacity: 1; |
||||
outline: thin dotted currentColor; |
||||
} |
||||
} |
||||
|
||||
input[type=checkbox]:checked ~ label { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path fill="white" d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg>'); |
||||
} |
||||
|
||||
nav { |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
a { |
||||
display: block; |
||||
text-transform: uppercase; |
||||
padding: 0 var(--space-3); |
||||
text-decoration: none; |
||||
line-height: calc(var(--toolbar-height) - (4 * var(--space-2)));; |
||||
color: inherit; |
||||
opacity: .5; |
||||
font-weight: 200; |
||||
transition: all var(--animation); |
||||
border-bottom: medium solid transparent; |
||||
border-radius: 5%; |
||||
|
||||
&:focus, &:hover { |
||||
text-shadow: var(--extruded-dark); |
||||
opacity: .75; |
||||
} |
||||
|
||||
&.active { |
||||
opacity: 1; |
||||
border-bottom-color: currentColor; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
@media (max-width: 60rem) { |
||||
body > header { |
||||
flex-wrap: wrap; |
||||
|
||||
label { |
||||
display: block; |
||||
} |
||||
|
||||
nav { |
||||
display: none; |
||||
width: 100%; |
||||
background: var(--primary); |
||||
flex-direction: column; |
||||
justify-content: flex-start; |
||||
|
||||
a { |
||||
width: 100%; |
||||
|
||||
&.active { |
||||
border-bottom-width: thin; |
||||
border-bottom-color: var(--lighten-2); |
||||
} |
||||
} |
||||
} |
||||
|
||||
input[type=checkbox]:checked ~ nav { |
||||
display: block; |
||||
} |
||||
} |
||||
} |
@ -1,13 +0,0 @@ |
||||
|
||||
.hero { |
||||
h1 { |
||||
padding: 2rem var(--container-margin); |
||||
} |
||||
|
||||
.description { |
||||
padding: 2rem var(--container-margin); |
||||
background: var(--color-hero); |
||||
border-top: thin solid var(--darken-1); |
||||
border-bottom: thin solid var(--darken-1); |
||||
} |
||||
} |
@ -1,47 +0,0 @@ |
||||
|
||||
.jumbo { |
||||
position: relative; |
||||
height: calc(100vh - var(--toolbar-height)); |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
|
||||
.inner { |
||||
padding: var(--space-4); |
||||
color: var(--primary-txt); |
||||
background: var(--darken-2); |
||||
border-radius: var(--space-3); |
||||
} |
||||
|
||||
.scroll-down { |
||||
position: absolute; |
||||
bottom: 2rem; |
||||
height: 2.5em; |
||||
width: 1.5em; |
||||
color: var(--base); |
||||
border: var(--space-1) solid currentColor; |
||||
border-radius: 1em; |
||||
|
||||
&::before { |
||||
content: ''; |
||||
position: absolute; |
||||
left: calc(50% - var(--space-1)); |
||||
border: var(--space-1) solid currentColor; |
||||
border-top-width: var(--space-2); |
||||
border-bottom-width: var(--space-2); |
||||
border-radius: 20%; |
||||
background: currentColor; |
||||
animation: scrollDownMove .8s ease-in-out alternate infinite; |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
@keyframes scrollDownMove { |
||||
from { |
||||
top: 1rem; |
||||
} |
||||
to { |
||||
top: .75rem; |
||||
} |
||||
} |
@ -1,15 +0,0 @@ |
||||
body > main { |
||||
flex-grow: 1; |
||||
|
||||
& > section { |
||||
margin: 2rem var(--container-margin); |
||||
padding-left: 0; |
||||
padding-right: 0; |
||||
|
||||
&.primary { |
||||
background-color: var(--primary); |
||||
color: var(--primary-txt); |
||||
} |
||||
|
||||
} |
||||
} |
@ -1,104 +0,0 @@ |
||||
.partners-group { |
||||
h3 { |
||||
text-align: center; |
||||
margin: var(--space-4) 0; |
||||
} |
||||
|
||||
ul { |
||||
list-style: none; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content: center; |
||||
padding: 0; |
||||
|
||||
li { |
||||
flex-basis: 160px; |
||||
margin: var(--space-3); |
||||
height: var(--partner-support-height); |
||||
} |
||||
} |
||||
|
||||
.partner { |
||||
padding: var(--space-3); |
||||
display: block; |
||||
height: 100%; |
||||
width: 100%; |
||||
background-size: contain; |
||||
background-repeat: no-repeat; |
||||
background-position: center; |
||||
background-origin: content-box; |
||||
box-shadow: var(--box-shadow-1); |
||||
transition: box-shadow var(--animation); |
||||
cursor: pointer; |
||||
|
||||
&:hover, &:focus { |
||||
box-shadow: var(--box-shadow-2); |
||||
} |
||||
} |
||||
} |
||||
|
||||
.partners-group.partner-platinium ul li { |
||||
height: var(--partner-platinum-height); |
||||
flex-basis: 320px; |
||||
} |
||||
|
||||
.partners-group.partner-gold ul li { |
||||
height: var(--partner-gold-height); |
||||
flex-basis: 200px; |
||||
} |
||||
|
||||
|
||||
/* Partner fancy name */ |
||||
|
||||
.partners-group .fancy { |
||||
line-height: 0.5; |
||||
text-align: center; |
||||
color: var(--base-secondary-text); |
||||
|
||||
span { |
||||
display: inline-block; |
||||
position: relative; |
||||
text-transform: capitalize; |
||||
|
||||
&:before, &:after { |
||||
top: 40%; |
||||
content: ""; |
||||
position: absolute; |
||||
height: 5px; |
||||
width: 140%; |
||||
max-width: 25vw; |
||||
} |
||||
|
||||
&:before { |
||||
right: 100%; |
||||
margin-right: 15px; |
||||
} |
||||
|
||||
&:after { |
||||
left: 100%; |
||||
margin-left: 15px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
.partners-group.partner-platinium .fancy { |
||||
font-size: 1.5em; |
||||
color: var(--color-platium); |
||||
|
||||
span:before, span:after { |
||||
border-bottom: 1px solid currentColor; |
||||
border-top: 1px solid currentColor; |
||||
} |
||||
} |
||||
|
||||
.partners-group.partner-gold .fancy { |
||||
font-size: 1.33em; |
||||
color: var(--color-gold); |
||||
|
||||
span:before, span:after { |
||||
top: 20%; |
||||
border-bottom: 1px solid currentColor; |
||||
} |
||||
} |
||||
|
@ -1,52 +0,0 @@ |
||||
a[class*='social-'] { |
||||
display: inline-flex; |
||||
margin: var(--space-1); |
||||
background-size: contain; |
||||
background-position: center center; |
||||
background-repeat: no-repeat; |
||||
|
||||
align-items: center; |
||||
color: inherit; |
||||
text-decoration: none; |
||||
|
||||
&::before { |
||||
--size: 1em; |
||||
height: var(--size); |
||||
width: var(--size); |
||||
display: inline-block; |
||||
content: ''; |
||||
background-repeat: no-repeat; |
||||
margin-right: var(--space-1); |
||||
} |
||||
|
||||
&:focus, &:hover { |
||||
text-decoration: underline; |
||||
} |
||||
} |
||||
|
||||
.social-facebook::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 264 512"><path fill="rgb(59,89,152)" d="M76.7 512V283H0v-91h76.7v-71.7C76.7 42.4 124.3 0 193.8 0c33.3 0 61.9 2.5 70.2 3.6V85h-48.2c-37.8 0-45.1 18-45.1 44.3V192H256l-11.7 91h-73.6v229"></path></svg>'); |
||||
} |
||||
|
||||
.social-twitter::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" ><path fill="rgb(64,153,255)" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg>'); |
||||
} |
||||
|
||||
.social-linkedin::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" ><path fill="rgb(0,119,181)" d="M100.3 448H7.4V148.9h92.9V448zM53.8 108.1C24.1 108.1 0 83.5 0 53.8S24.1 0 53.8 0s53.8 24.1 53.8 53.8-24.1 54.3-53.8 54.3zM448 448h-92.7V302.4c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7V448h-92.8V148.9h89.1v40.8h1.3c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3V448h-.1z"></path></svg>'); |
||||
} |
||||
|
||||
.social-youtube::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" ><path fill="rgb(205,32,31)" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg>'); |
||||
} |
||||
|
||||
.social-github::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512" ><path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"></path></svg>'); |
||||
} |
||||
|
||||
.social-website::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" ><path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>'); |
||||
} |
||||
.social-slides::before { |
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" ><path fill="currentColor" d="M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"></path></svg>'); |
||||
} |
@ -1,47 +0,0 @@ |
||||
.speakers ul { |
||||
|
||||
li .speaker { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
text-decoration: none; |
||||
color: inherit; |
||||
|
||||
.info { |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
} |
||||
|
||||
.speaker-img { |
||||
--size: 8rem; |
||||
height: var(--size); |
||||
min-width: var(--size); |
||||
border-radius: 100%; |
||||
background-size: cover; |
||||
margin: var(--space-2); |
||||
} |
||||
|
||||
.speaker-company { |
||||
img { |
||||
max-height: 2rem; |
||||
margin: var(--space-1); |
||||
} |
||||
figcaption { |
||||
display: none; |
||||
} |
||||
} |
||||
|
||||
.speaker-name { |
||||
font-weight: 600; |
||||
margin: var(--space-1); |
||||
} |
||||
|
||||
.speaker-company { |
||||
font-weight: 200; |
||||
opacity: .8; |
||||
margin: var(--space-1); |
||||
} |
||||
|
||||
} |
||||
} |
@ -1,20 +0,0 @@ |
||||
#TableOfContents ul { |
||||
padding-left: 0; |
||||
list-style: none; |
||||
|
||||
li { |
||||
font-size: 1rem; |
||||
margin: var(--space-1) 0; |
||||
padding: var(--space-1) 0; |
||||
|
||||
a { |
||||
color: var(--primary); |
||||
text-decoration: none; |
||||
|
||||
&:focus, &:hover { |
||||
text-decoration: underline; |
||||
|
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,47 +0,0 @@ |
||||
.tag-method-tools { |
||||
background-color: var(--method-tools); |
||||
} |
||||
|
||||
.tag-native-mobile-apps { |
||||
background-color: var(--native-mobile-apps); |
||||
} |
||||
|
||||
.tag-web { |
||||
background-color: var(--web); |
||||
} |
||||
|
||||
.tag-big-data-ml-ai { |
||||
background-color: var(--big-data-ml-ai); |
||||
} |
||||
|
||||
.tag-iot { |
||||
background-color: var(--iot); |
||||
} |
||||
|
||||
.tag-cloud { |
||||
background-color: var(--cloud); |
||||
} |
||||
|
||||
.tag-languages { |
||||
background-color: var(--languages); |
||||
} |
||||
|
||||
.tag-wtf { |
||||
background-color: var(--wtf); |
||||
} |
||||
|
||||
.tag-general { |
||||
background-color: var(--general); |
||||
} |
||||
|
||||
.tags { |
||||
padding: var(--space-1); |
||||
border-radius: var(--space-2); |
||||
background: var(--darken-1); |
||||
border: thin solid var(--darken-2); |
||||
text-shadow: var(--extruded-light); |
||||
} |
||||
|
||||
.taxonomy.tags { |
||||
background: var(--base); |
||||
} |
@ -1,56 +0,0 @@ |
||||
|
||||
.tickets ul { |
||||
list-style: none; |
||||
display: flex; |
||||
flex-wrap: wrap; |
||||
justify-content: center; |
||||
align-items: center; |
||||
width: 100%; |
||||
|
||||
li { |
||||
flex-basis: 15rem; |
||||
} |
||||
|
||||
li .ticket { |
||||
margin: var(--space-4); |
||||
padding: 2rem var(--space-3); |
||||
border: thin solid var(--darken-1); |
||||
box-shadow: var(--space-1) var(--space-1) var(--space-2) var(--darken-2); |
||||
display: flex; |
||||
flex-direction: column; |
||||
align-items: center; |
||||
text-decoration: none; |
||||
color: inherit; |
||||
|
||||
&[aria-disabled] { |
||||
opacity: .5; |
||||
filter: grayscale(1); |
||||
cursor: not-allowed; |
||||
} |
||||
|
||||
|
||||
.ticket-name { |
||||
font-size: 1rem; |
||||
} |
||||
|
||||
.ticket-price { |
||||
font-size: 3.5rem; |
||||
color: var(--primary); |
||||
font-weight: 200; |
||||
} |
||||
|
||||
.ticket-date, .ticket-info { |
||||
font-size: .75rem; |
||||
color: var(--darken-3); |
||||
} |
||||
|
||||
.btn { |
||||
margin: var(--space-4); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1,13 +0,0 @@ |
||||
|
||||
|
||||
.type-conférence { |
||||
--duration: '40'; |
||||
} |
||||
|
||||
.type-quickie { |
||||
--duration: '15'; |
||||
} |
||||
|
||||
.type-keynote { |
||||
--duration: '40'; |
||||
} |
@ -1,3 +0,0 @@ |
||||
{{ define "main"}} |
||||
<h1 class="error">Oops!, page {{ .URL }} not found !</h1> |
||||
{{ end }} |
@ -1,32 +0,0 @@ |
||||
<!DOCTYPE html> |
||||
<html lang="{{ $.Site.LanguageCode | default " en" }}"> |
||||
{{ partial "head.html" . }} |
||||
|
||||
<body class="{{ .Kind }} {{ anchorize .URL }} {{ .Section }}"> |
||||
|
||||
{{ block "header" . }} |
||||
{{ partial "header.html" . }} |
||||
{{ end }} |
||||
|
||||
<main> |
||||
{{ block "main" . }} |
||||
{{ end }} |
||||
</main> |
||||
|
||||
{{ block "footer.html" . }} |
||||
{{ partial "footer.html" . }} |
||||
{{ end }} |
||||
|
||||
|
||||
{{ $base := resources.Get "script/base.js" }} |
||||
{{ $subscription := resources.Get "script/subscription.js" }} |
||||
{{ $shuffle := resources.Get "script/shuffle.js" }} |
||||
|
||||
{{ $js := slice $base $subscription $shuffle | resources.Concat "script/main.js" }} |
||||
<script src="{{ $js.Permalink }}"></script> |
||||
{{ block "scripts" . }} |
||||
<!-- No extra scripts --> |
||||
{{ end }} |
||||
</body> |
||||
|
||||
</html> |
@ -1,14 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
{{ .Content }} |
||||
<hr> |
||||
|
||||
<ul class="pages"> |
||||
{{ range .Pages }} |
||||
<li> |
||||
<a href="{{ .URL }}"> {{ .Title }}</a> |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
|
||||
{{ end }} |
@ -1,14 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
{{ .TableOfContents }} |
||||
</div> |
||||
</div> |
||||
|
||||
<section class="content"> |
||||
{{ .Content }} |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,28 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
{{ .Content }} |
||||
</div> |
||||
</div> |
||||
|
||||
<section class="blogs"> |
||||
{{ range .Pages }} |
||||
<article> |
||||
<a class="blog" href="{{ .URL }}"> |
||||
<div class="img" style="background-image: url({{ path.Join .URL .Params.image }});"></div> |
||||
<div class="info"> |
||||
<h2>{{ .Title }}</h2> |
||||
<span>{{ .Params.brief }}</span> |
||||
<div class="date">{{ dateFormat "2 Jan 2016" .Date }}</div> |
||||
<div class="reading">{{ .ReadingTime }}</div> |
||||
</div> |
||||
<p>{{ .Summary }} ...</p> |
||||
</a> |
||||
</article> |
||||
{{ end }} |
||||
</section> |
||||
|
||||
|
||||
{{ end }} |
@ -1,23 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero" > |
||||
<div class="img" style="color: {{ .Params.color | default "#fff" }};background-image: url({{ .Params.image }})"></div> |
||||
|
||||
<div class="description"> |
||||
|
||||
<h1> |
||||
<span>{{ .Title }}</span> |
||||
<small>{{ .Params.brief }}</small> |
||||
</h1> |
||||
|
||||
<hr> |
||||
{{ .TableOfContents }} |
||||
</div> |
||||
</div> |
||||
|
||||
<section class="content"> |
||||
|
||||
{{ .Content }} |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,109 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
{{ .Content }} |
||||
|
||||
{{ if .Params.info.show }} |
||||
<section class="info"> |
||||
<h2>Le DevFest Toulouse, c'est quoi ?</h2> |
||||
<div> |
||||
<p>{{ .Params.info.label }}</p> |
||||
{{ if .Params.info.what }} |
||||
<div class="numbers"> |
||||
{{range .Params.info.what }} |
||||
<div class="number"> |
||||
<strong>{{ .value }}</strong> |
||||
<div>{{ .label }}</div> |
||||
</div> |
||||
{{ end }} |
||||
</div> |
||||
{{ end }} |
||||
</div> |
||||
</section> |
||||
{{ end }} |
||||
|
||||
|
||||
{{ if .Params.speakers.show }} |
||||
<section class="speakers"> |
||||
<h2>Rockstar speakers</h2> |
||||
{{ if .Params.speakers.top }} |
||||
<ul class="shuffle"> |
||||
{{ range where .Site.RegularPages "Params.id" "in" .Params.speakers.top }} |
||||
<li> |
||||
{{ partial "speaker.html" . }} |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
{{ end }} |
||||
{{ if .Params.speakers.otherspeakers }} |
||||
<a class="btn primary" href="/speakers/">Voir tous les speakers</a> |
||||
{{ end }} |
||||
</section> |
||||
{{ end }} |
||||
|
||||
|
||||
{{ if .Params.subscribe.show }} |
||||
<section class="subscribe primary"> |
||||
<h2>Soyez notifié des dernières informations !</h2> |
||||
<button class="inverse" id="btnSubscribe">Souscrire</button> |
||||
</section> |
||||
{{ end }} |
||||
|
||||
{{ if .Params.tickets.show }} |
||||
<section class="tickets"> |
||||
<h2>Billets</h2> |
||||
<a class="btn primary" target="_blank" href="https://www.billetweb.fr/devfest-toulouse-2019">Billeterie</a> |
||||
|
||||
<ul> |
||||
{{range .Params.tickets.values }} |
||||
<li>{{ partial "ticket.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
|
||||
<p> |
||||
<small> |
||||
* Votre billet vous donne accès à toutes les conférences, aux pauses café, et au repas. L'hébergement n'est PAS |
||||
inclus dans ce prix. |
||||
</small> |
||||
</p> |
||||
</section> |
||||
{{ end }} |
||||
|
||||
{{ if .Params.location.show }} |
||||
<section class="location"> |
||||
<div class="map" style="background-image: url('{{ .Params.location.image }}');"></div> |
||||
<div class="description"> |
||||
<h2>Le lieu</h2> |
||||
<h3>{{ .Params.location.name }}</h3> |
||||
<p>{{ .Params.location.description }}</p> |
||||
<div class="direction"> |
||||
{{ .Params.location.address }} |
||||
{{ if .Params.location.pointer }} |
||||
<a class="btn btn-icon-only icon-direction" target="_blank" aria-label="Itinéraire" href="https://www.google.com/maps/dir/?api=1&destination={{ .Site.Params.location.pointer.latitude }},{{ .Site.Params.location.pointer.longitude }}"></a> |
||||
{{ end }} |
||||
</div> |
||||
</div> |
||||
</section> |
||||
{{ end }} |
||||
|
||||
|
||||
{{ if .Params.partners.show }} |
||||
<section class="partners"> |
||||
<h2>Partenaires</h2> |
||||
{{ $site := .Site }} |
||||
{{ range .Site.Params.partners.categories }} |
||||
<section class="partners-group partner-{{ . }}"> |
||||
<h3 class="fancy"> |
||||
<span>{{ . }}</span> |
||||
</h3> |
||||
<ul> |
||||
{{ range where $site.Pages "Params.category" . }} |
||||
<li>{{ partial "partner.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
{{ end }} |
||||
</section> |
||||
{{ end }} |
||||
|
||||
{{ end }} |
||||
|
@ -1,42 +0,0 @@ |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
||||
<meta name="viewport" content="width=device-width,minimum-scale=1"> |
||||
<meta name="HandheldFriendly" content="True"> |
||||
<meta name="MobileOptimized" content="320"> |
||||
|
||||
{{/* NOTE: These Hugo Internal Templates can be found starting at |
||||
https://github.com/gohugoio/hugo/tree/master/tpl/tplimpl/embedded/templates */}} |
||||
{{- template "_internal/opengraph.html" . -}} |
||||
{{- template "_internal/google_news.html" . -}} |
||||
{{- template "_internal/schema.html" . -}} |
||||
{{- template "_internal/twitter_cards.html" . -}} |
||||
|
||||
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} |
||||
{{ template "_internal/google_analytics_async.html" . }} |
||||
{{ end }} |
||||
|
||||
{{ .Hugo.Generator }} |
||||
|
||||
{{/* NOTE: For Production make sure you add `HUGO_ENV="production"` before your build command */}} |
||||
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} |
||||
<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW"> |
||||
{{ else }} |
||||
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> |
||||
{{ end }} |
||||
|
||||
<title>{{ block "title" . }}{{ .Site.Title }} {{ with .Params.Title }} | {{ . }}{{ end }}{{ end }}</title> |
||||
|
||||
{{ if .Site.Params.favicon }} |
||||
<link rel="shortcut icon" href="{{ .Site.Params.favicon }}" type="image/x-icon" /> |
||||
{{ end }} |
||||
|
||||
{{ if .RSSLink }} |
||||
<link href="{{ .RSSLink }}" rel="alternate" type="application/rss+xml" title="{{ .Site.Title }}" /> |
||||
<link href="{{ .RSSLink }}" rel="feed" type="application/rss+xml" title="{{ .Site.Title }}" /> |
||||
{{ end }} |
||||
|
||||
{{ $style := resources.Get "style/main.scss" | resources.ToCSS | resources.Minify | resources.Fingerprint }} |
||||
<link rel="stylesheet" href="{{ $style.Permalink }}"> |
||||
|
||||
</head> |
@ -1,24 +0,0 @@ |
||||
<header> |
||||
<div class="logo"> |
||||
<a href="/"> |
||||
<img src="{{ .Site.Params.logos.header }}" alt="logo {{ .Site.Title }}"> |
||||
</a> |
||||
</div> |
||||
|
||||
<input type="checkbox" id="menu-burger" class="visually-hidden"/> |
||||
|
||||
<label for="menu-burger"></label> |
||||
|
||||
<nav> |
||||
{{ $url := .URL }} |
||||
{{ range .Site.Params.menus }} |
||||
{{ if (hasPrefix .url "http") }} |
||||
<a class="external" href="{{ .url }}" target="_blank" >{{ .name }}</a> |
||||
{{ else }} |
||||
<a class="{{ if (eq .url $url) }}active{{ end }}" href="{{ .url }}">{{ .name }}</a> |
||||
{{ end }} |
||||
{{ end }} |
||||
</nav> |
||||
|
||||
|
||||
</header> |
@ -1,5 +0,0 @@ |
||||
<a class="partner" |
||||
href="{{ .URL }}" |
||||
aria-label="{{ .Title }}" |
||||
title="{{ .Title }}" |
||||
style="background-image: url({{ .Params.logo }});"></a> |
@ -1,40 +0,0 @@ |
||||
<a href="{{ .URL }}" class="tag-{{ anchorize (delimit (.Params.tags | default (slice)) "" ) }}"> |
||||
|
||||
<h2> |
||||
{{ .Title }} |
||||
<span class="language {{ anchorize .Params.language }}"></span> |
||||
</h2> |
||||
|
||||
<hr> |
||||
|
||||
<div class="info"> |
||||
{{ if.Params.tags }} |
||||
<div class="tags"> |
||||
{{ range .Params.tags }} |
||||
<span>{{ . }}</span> |
||||
{{ end }} |
||||
</div> |
||||
{{ end }} |
||||
|
||||
<div class="complexity">{{ .Params.complexity }}</div> |
||||
<div class="type type-{{ anchorize .Params.talkType }}">{{ .Params.talkType }}</div> |
||||
</div> |
||||
|
||||
|
||||
<ul class="speakers"> |
||||
{{ range where .Site.RegularPages "Params.id" "in" .Params.speakers }} |
||||
<li class="speaker"> |
||||
<div class="speaker-img" style="background-image: url({{ .Params.photo }});"></div> |
||||
<div class="info"> |
||||
<strong class="speaker-name">{{ .Params.name }}</strong> |
||||
<span class="speaker-country">{{ .Params.country }}</span> |
||||
</div> |
||||
<figure class="speaker-company" > |
||||
<img src="{{ .Params.companyLogo }}"> |
||||
<figcaption>{{ .Params.company }}</figcaption> |
||||
</figure> |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
|
||||
</a> |
@ -1,11 +0,0 @@ |
||||
<a class="speaker" href="{{ .URL }}"> |
||||
<div class="speaker-img" style="background-image: url({{ .Params.photo }});"></div> |
||||
<div class="info"> |
||||
<figure class="speaker-company"> |
||||
<img src="{{ .Params.companyLogo }}"> |
||||
<figcaption>{{ .Params.company }}</figcaption> |
||||
</figure> |
||||
<strong class="speaker-name">{{ .Params.name }}</strong> |
||||
<span class="speaker-country">{{ .Params.country }}</span> |
||||
</div> |
||||
</a> |
@ -1,5 +0,0 @@ |
||||
<form class="subscribe"> |
||||
Pas de spam, juste les dernières infos ! |
||||
<input type="email" name="email" placeholder="Votre mail"> |
||||
<button>Souscrire</button> |
||||
</form> |
@ -1,10 +0,0 @@ |
||||
<div class="photo" style="background-image: url({{ .photoUrl }});"></div> |
||||
<div class="label"> |
||||
<h3>{{ .name }}</h3> |
||||
<h4>{{ .title }}</h4> |
||||
<ul class="socials"> |
||||
{{ range .socials }} |
||||
<li><a class="social-{{ .icon }}" title="{{ .name }}" href="{{ .link }}" target="_blank"></a></li> |
||||
{{ end }} |
||||
</ul> |
||||
</div> |
@ -1,12 +0,0 @@ |
||||
<div class="ticket" {{ if .soldOut }}aria-disabled="true"{{end}}> |
||||
<div class="ticket-name">{{ .name }}</div> |
||||
<div class="ticket-price">{{ .price }} {{ .currency }}</div> |
||||
<div class="ticket-date">{{ .starts }} - {{ .ends }}</div> |
||||
<div class="ticket-info">{{ .info }}</div> |
||||
|
||||
{{ if .soldOut }} |
||||
<span class="btn" aria-disabled="true">Rupture de stock</span> |
||||
{{ else }} |
||||
<a class="btn primary" target="_blank" href="{{ .url }}">Billeterie</a> |
||||
{{ end }} |
||||
</div> |
@ -1,24 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
TODO: filter and search |
||||
</div> |
||||
</div> |
||||
|
||||
{{ $site := .Site }} |
||||
{{ range .Params.categories }} |
||||
<section class="partners-group partner-{{ . }}"> |
||||
<h3 class="fancy"> |
||||
<span>{{ . }}</span> |
||||
</h3> |
||||
<ul> |
||||
{{ range where $site.Pages "Params.category" . }} |
||||
<li>{{ partial "partner.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
{{ end }} |
||||
|
||||
{{ end }} |
@ -1,6 +0,0 @@ |
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
{{ .Inner }} |
||||
</div> |
||||
</div> |
@ -1,6 +0,0 @@ |
||||
<div class="jumbo" style="background: url({{ .Get "img" }}) 0 / cover fixed;"> |
||||
<div class="inner"> |
||||
{{ .Inner }} |
||||
</div> |
||||
<div class="scroll-down"></div> |
||||
</div> |
@ -1,18 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
TODO: filter and search |
||||
</div> |
||||
</div> |
||||
|
||||
<section> |
||||
<ul class="speakers shuffle"> |
||||
{{ range .Pages }} |
||||
<li>{{ partial "speaker.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,58 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
|
||||
<header> |
||||
<div class="speaker-img" style="background-image: url({{ .Page.Params.photo }});"></div> |
||||
<div> |
||||
<h1>{{ .Page.Params.name }}</h1> |
||||
|
||||
<ul class="socials"> |
||||
{{ range .Page.Params.socials }} |
||||
<li> |
||||
<a class="social-{{ .icon }}" href="{{ .link }}" target="_blank">{{ .name }}</a> |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
</div> |
||||
</header> |
||||
|
||||
<div class="description"> |
||||
|
||||
<ul class="talks"> |
||||
{{ range where .Site.RegularPages "Params.speakers" "intersect" (slice .Page.Params.id) }} |
||||
<li> |
||||
<a href="{{ .URL }}" class="talk tag-{{ anchorize (delimit .Params.tags "" ) }}"> |
||||
<div class="tags"> |
||||
{{ range .Params.tags }} |
||||
<span>{{ . }}</span> |
||||
{{ end }} |
||||
</div> |
||||
<span class="language {{ anchorize .Params.language }}"></span> |
||||
<h3 class="text">{{ .Title }}</h3> |
||||
</a> |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
<section class="speaker"> |
||||
|
||||
<header> |
||||
<h2>{{ .Page.Params.country }}</h2> |
||||
<figure class="speaker-company"> |
||||
<img src="{{ .Page.Params.companyLogo }}" alt="{{ .Page.Params.company }}"> |
||||
<figcaption>{{ .Page.Params.company }}</figcaption> |
||||
</figure> |
||||
</header> |
||||
|
||||
<div class="bio"> |
||||
{{ .Content }} |
||||
</div> |
||||
|
||||
</section> |
||||
|
||||
|
||||
{{ end }} |
@ -1,18 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
TODO: filter and search |
||||
</div> |
||||
</div> |
||||
|
||||
<section> |
||||
<ul class="talks shuffle"> |
||||
{{ range where .Pages ".Params.title" "ne" "Office Hours" }} |
||||
<li class="talk">{{ partial "session.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,62 +0,0 @@ |
||||
{{ define "main" }} |
||||
<section class="talk"> |
||||
|
||||
<header class="tag-{{ anchorize (delimit .Params.tags "" ) }}"> |
||||
<div class="tags"> |
||||
{{ range .Params.tags }} |
||||
<span>{{ . }}</span> |
||||
{{ end }} |
||||
</div> |
||||
|
||||
<h1 class="text">{{ .Title }}</h1> |
||||
<span class="language {{ anchorize .Params.language }}"></span> |
||||
</header> |
||||
|
||||
<div class="info"> |
||||
<div class="complexity">{{ .Params.complexity }}</div> |
||||
<div class="type type-{{ anchorize .Params.talkType }}">{{ .Params.talkType }}</div> |
||||
|
||||
<div class="content"> |
||||
{{ .Content }} |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
<ul class="speakers"> |
||||
{{ range where .Site.RegularPages "Params.id" "in" .Params.speakers }} |
||||
<li> |
||||
<a class="speaker" href="/speakers/{{ .Params.id }}"> |
||||
<div class="speaker-img" style="background-image: url({{ .Params.photo }});"></div> |
||||
<div class="info"> |
||||
<strong class="speaker-name">{{ .Params.name }}</strong> |
||||
<span class="speaker-country">{{ .Params.country }}</span> |
||||
</div> |
||||
<p>{{ .Params.shortBio }}</p> |
||||
<figure class="speaker-company"> |
||||
<img src="{{ .Params.companyLogo }}"> |
||||
<figcaption>{{ .Params.company }}</figcaption> |
||||
</figure> |
||||
</a> |
||||
</li> |
||||
{{ end }} |
||||
</ul> |
||||
|
||||
|
||||
<div class="media"> |
||||
{{ if .Params.videoId }} |
||||
<div class="video" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"> |
||||
<iframe src="//www.youtube.com/embed/{{ .Params.videoId }}?autoplay=1" |
||||
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" allowfullscreen |
||||
title="YouTube Video"></iframe> |
||||
</div> |
||||
{{ end }} |
||||
|
||||
{{ if .Params.presentation }} |
||||
<a class="social-slides" href="{{ .Params.presentation }}" target="_blank">Voir les slides</a> |
||||
{{ end }} |
||||
|
||||
</div> |
||||
|
||||
</section> |
||||
{{ end }} |
@ -1,18 +0,0 @@ |
||||
{{ define "main" }} |
||||
|
||||
<div class="hero"> |
||||
<h1>{{ $.Page.Params.Title }}</h1> |
||||
<div class="description"> |
||||
TODO: filter and search |
||||
</div> |
||||
</div> |
||||
|
||||
<section> |
||||
<ul class="talks shuffle"> |
||||
{{ range where .Pages ".Params.title" "ne" "Office Hours" }} |
||||
<li class="talk">{{ partial "session.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,12 +0,0 @@ |
||||
{{ define "main" }} |
||||
{{ .Content }} |
||||
|
||||
<section> |
||||
<ul class="members shuffle"> |
||||
{{ range (shuffle .Site.Data.team) }} |
||||
<li>{{ partial "team.html" . }}</li> |
||||
{{ end }} |
||||
</ul> |
||||
</section> |
||||
|
||||
{{ end }} |
@ -1,7 +0,0 @@ |
||||
User-agent: * |
||||
# robotstxt.org - if ENV production variable is false robots will be disallowed. |
||||
{{ if eq (getenv "HUGO_ENV") "production" | or (eq .Site.Params.env "production") }} |
||||
Disallow: |
||||
{{ else }} |
||||
Disallow: / |
||||
{{ end }} |
@ -1,14 +0,0 @@ |
||||
# theme.toml template for a Hugo theme |
||||
# See https://github.com/gohugoio/hugoThemes#themetoml for an example |
||||
|
||||
name = "Devfest Toulouse Theme" |
||||
license = "MIT" |
||||
licenselink = "https://github.com/GDGToulouse/template-site-devfest-toulouse/LICENSE" |
||||
description = "" |
||||
tags = ["Devfest"] |
||||
features = [] |
||||
min_version = "0.50" |
||||
|
||||
[author] |
||||
name = "GDG Toulouse" |
||||
homepage = "https://github.com/GDGToulouse" |
@ -1,23 +0,0 @@ |
||||
const yaml = require('js-yaml'); |
||||
const fs = require('fs'); |
||||
const path = require('path'); |
||||
|
||||
const writeOption = { |
||||
flag: 'w' |
||||
}; |
||||
|
||||
const writeToYml = (list, dest) => { |
||||
const data = yaml.safeDump(list); |
||||
console.log('Write to', dest); |
||||
|
||||
fs.writeFileSync(dest, data, writeOption); |
||||
}; |
||||
|
||||
const firebaseData = require('./firebase-data.json'); |
||||
|
||||
['partners', 'team', 'tickets'] |
||||
.forEach(key => { |
||||
const dest = path.join(__dirname, `../data/${key}.yml`); |
||||
const data = firebaseData[key]; |
||||
writeToYml(data, dest); |
||||
}); |
File diff suppressed because it is too large
Load Diff
@ -1,48 +0,0 @@ |
||||
const yaml = require('js-yaml'); |
||||
const fs = require('fs'); |
||||
const path = require('path'); |
||||
const slugify = require('slugify'); |
||||
|
||||
|
||||
const writeOption = { |
||||
flag: 'w' |
||||
}; |
||||
|
||||
const firebaseData = require('./firebase-data.json'); |
||||
|
||||
const generatePartnerGroupData = group => { |
||||
const {title, logos} = group; |
||||
return logos |
||||
.map(partner => ({ |
||||
title: partner.name, |
||||
type: 'partner', |
||||
category: slugify(title.toLowerCase()), |
||||
website: partner.url, |
||||
logo: partner.logoUrl, |
||||
socials: [] |
||||
})).map(generatePartnerData); |
||||
|
||||
}; |
||||
|
||||
const generatePartnerData = (partner) => { |
||||
const data = `---
|
||||
${yaml.safeDump(partner, {skipInvalid: true})}--- |
||||
|
||||
Find ${partner.title} on [${partner.website}](${partner.website}) |
||||
|
||||
![${partner.title}](${partner.logo}) |
||||
`;
|
||||
|
||||
return {id: partner.title.toLowerCase(), parent: partner.category, data}; |
||||
}; |
||||
|
||||
Object.values(firebaseData.partners) |
||||
.map(group => generatePartnerGroupData(group)) |
||||
.reduce((acc, elt) => ([...acc, ...elt]), []) |
||||
.forEach(({id, parent, data}) => { |
||||
const parentFile = path.join(__dirname, `../content/partners/${slugify(parent)}`); |
||||
fs.mkdirSync(parentFile, {recursive: true}); |
||||
const dest = path.join(parentFile, `${slugify(id)}.md`); |
||||
console.log('Write to', dest); |
||||
fs.writeFileSync(dest, data, writeOption); |
||||
}); |
@ -1,45 +0,0 @@ |
||||
const yaml = require('js-yaml'); |
||||
const fs = require('fs'); |
||||
const path = require('path'); |
||||
|
||||
|
||||
const writeOption = { |
||||
flag: 'w' |
||||
}; |
||||
|
||||
const firebaseData = require('./firebase-data.json'); |
||||
|
||||
|
||||
const generateSessionData = (id, session) => { |
||||
const frontMatter = {id, ...session}; |
||||
const {type} = frontMatter; |
||||
delete frontMatter.description; |
||||
delete frontMatter.type; |
||||
frontMatter.talkType = type; |
||||
return `---
|
||||
${yaml.safeDump(frontMatter, {skipInvalid: true})} |
||||
--- |
||||
|
||||
${session.description} |
||||
`;
|
||||
}; |
||||
|
||||
const generateSessionName = (id, title) => { |
||||
const name = title |
||||
.normalize('NFD') |
||||
.replace(/[\u0300-\u036f]/g, "") |
||||
.replace(/[^a-z0-9]/gi, '_') |
||||
.toLowerCase(); |
||||
return `${id}_${name}.md`; |
||||
}; |
||||
|
||||
Object.entries(firebaseData.sessions) |
||||
.filter(([_, session]) => !session.isBreak) |
||||
.map(([id, session]) => ([ |
||||
generateSessionName(id, session.title), |
||||
generateSessionData(parseInt(id, 10), session)])) |
||||
.forEach(([filename, data]) => { |
||||
const dest = path.join(__dirname, `../content/talks/${filename}`); |
||||
console.log('Write to', dest); |
||||
fs.writeFileSync(dest, data, writeOption); |
||||
}); |
@ -1,29 +0,0 @@ |
||||
const yaml = require('js-yaml'); |
||||
const fs = require('fs'); |
||||
const path = require('path'); |
||||
|
||||
|
||||
const writeOption = { |
||||
flag: 'w' |
||||
}; |
||||
|
||||
const firebaseData = require('./firebase-data.json'); |
||||
|
||||
const generateSpeakerData = (id, speaker) => { |
||||
const frontMatter = {id, ...speaker}; |
||||
delete frontMatter.bio; |
||||
return `---
|
||||
${yaml.safeDump(frontMatter, {skipInvalid: true})} |
||||
--- |
||||
|
||||
${speaker.bio} |
||||
`;
|
||||
}; |
||||
|
||||
Object.entries(firebaseData.speakers) |
||||
.map(([id, speaker]) => ([id, generateSpeakerData(id, speaker)])) |
||||
.forEach(([id, data]) => { |
||||
const dest = path.join(__dirname, `../content/speakers/${id}.md`); |
||||
console.log('Write to', dest); |
||||
fs.writeFileSync(dest, data, writeOption); |
||||
}); |
Loading…
Reference in new issue