fix loading
ci/woodpecker/push/woodpecker Pipeline was successful Podrobnosti

This commit is contained in:
Adam Sobotka 2022-10-21 14:45:50 +02:00
revize 126f6d6484
122 změnil soubory, kde provedl 7260 přidání a 0 odebrání

3
.env.example Normal file
Zobrazit soubor

@ -0,0 +1,3 @@
IPFS_CLUSTER_HOST=https://my-ipfs-cluster.example
IPFS_CLUSTER_USER=my_username
IPFS_CLUSTER_PASS=my_password

13
.eslintignore Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

15
.eslintrc.cjs Normal file
Zobrazit soubor

@ -0,0 +1,15 @@
module.exports = {
root: true,
extends: ['eslint:recommended', 'prettier'],
plugins: ['svelte3'],
overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
parserOptions: {
sourceType: 'module',
ecmaVersion: 2020
},
env: {
browser: true,
es2017: true,
node: true
}
};

12
.gitignore vendorováno Normal file
Zobrazit soubor

@ -0,0 +1,12 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
bun.lockb
src/lib/data.json
static/data.json
.gitsigners

0
.nojekyll Normal file
Zobrazit soubor

1
.npmrc Normal file
Zobrazit soubor

@ -0,0 +1 @@
engine-strict=true

1
.nvmrc Normal file
Zobrazit soubor

@ -0,0 +1 @@
16.15.0

13
.prettierignore Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
# Ignore files for PNPM, NPM and YARN
pnpm-lock.yaml
package-lock.json
yarn.lock

9
.prettierrc Normal file
Zobrazit soubor

@ -0,0 +1,9 @@
{
"useTabs": true,
"singleQuote": true,
"trailingComma": "none",
"printWidth": 100,
"plugins": ["prettier-plugin-svelte"],
"pluginSearchDirs": ["."],
"overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
}

29
.woodpecker.yml Normal file
Zobrazit soubor

@ -0,0 +1,29 @@
pipeline:
build_and_test:
image: node
commands:
- node --version
- npm ci
- npm run build
- npm run test
deploy:
image: rclone/rclone
commands:
- "rclone sync build/ :sftp: --sftp-host frontier.gwei.cz --sftp-user eb2-website-dev --sftp-port 2022 --sftp-pass $RCLONE_PASS -v"
secrets: [RCLONE_PASS]
when:
branch: [main]
deploy_ipfs:
image: node
environment:
IPFS_CLUSTER_HOST: https://ipfs-cluster.gwei.cz
IPFS_CLUSTER_USER: ethbrno
commands:
- npx -y --loglevel=error github:burningtree/ipfs-cluster-deploy ./build ethbrno-web
secrets: [IPFS_CLUSTER_PASS]
when:
event: tag
branch: main

13
README.md Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
# ETHBrno² Website
Website is created using [SvelteKit](https://kit.svelte.dev/) and deployed as a static application to these addresses:
* [ethbrno.cz](https://ethbrno.cz) (self-hosted @ [gwei.cz](https://gwei.cz))
* [mirror.ethbrno.cz](https://mirror.ethbrno.cz/) (mirror @ [Netlify](https://www.netlify.com/))
* IPFS network - the url is changing (example: [bafybeiddx4e2yyur3kjyppcvcg2nb7yxrxs2b2y7lfe4pgekgwpjwtsh7y.ipfs.gwei.cz](https://bafybeiddx4e2yyur3kjyppcvcg2nb7yxrxs2b2y7lfe4pgekgwpjwtsh7y.ipfs.gwei.cz))
The [IPFS](https://ipfs.io/) addresses of the major versions are stored directly in the `ethbrno.eth` [ENS](https://ens.domains/) record. You can access the site using these gateways:
* [ethbrno.eth.link](https://ethbrno.eth.link)
* [ethbrno.eth.limo](https://ethbrno.eth.limo)
## Authors
* vorcigernix

223
data/data.yaml Normal file
Zobrazit soubor

@ -0,0 +1,223 @@
# ---- CONTRIBUTORS ----
contributorTypes:
all:
title: All
role: null
speakers:
title: Speakers
role: speaker
mentors:
title: Mentors
role: mentor
judges:
title: Judges
role: judge
advisors:
title: Advisors
role: advisor
team:
title: Core Team
role: team
contributors:
# ---- SPEAKERS ----
- id: silur
name: Abraham Endre
nickname: Silur
link: https://github.com/Silur
bio: Hackoholic Cryptonaut - Early Ethereum dev and blockchain pioneer
roles: [ speaker ]
- id: rachel-oleary
name: Rachel-Rose O'Leary
twitter: lunar_mining
bio: DarkFi core dev, writer
roles: [ speaker ]
desc: |
Rachel-Rose OLeary is a core dev at lunarpunk layer 1, DarkFi. She is also co-editor of the philosophy journal Agorism in the 21st Century. As a writer she has published in egirlcapital, CoinDesk, Defiant, Wired and elsewhere under anonymous accounts. She believes privacy is necessary for communities to define their own destinies.
- id: nick-almond
name: Nick Almond
nickname: DrNick
twitter: DrNickA
bio: FactoryDAO
roles: [ speaker ]
- id: juraj-bednar
name: Juraj Bednar
twitter: jurbed
bio: Hacktrophy, Hackyourself.io
roles: [ speaker ]
- id: pavol-luptak
name: Pavol Luptak
nickname: wilder
twitter: wilderco
bio: Nethemba, Hacktrophy, liberation.travel
roles: [ speaker ]
remote: true
- id: dcbuilder
name: dcbuilder.eth
twitter: DCbuild3r
bio: WorldCoin, devpill.me
roles: [ speaker, advisor ]
- id: artem-vorotnikov
name: Artem Vorotnikov
twitter: vorot93
bio: Ethereum Core Developer, creator of Akula
roles: [ speaker ]
remote: true
- id: owen-barnes
name: Owen Barnes
nickname: temporalwave
twitter: temporalwave
bio: Independent freedom adviser
roles: [ speaker, mentor ]
- id: william-mitsuda
name: Willian Mitsuda
twitter: wmitsuda
bio: Creator of Otterscan
roles: [ speaker ]
remote: true
- id: vojtech-simetka
name: Vojtěch Šimetka
twitter: vojtechsimetka
bio: Blockchain for Humanity, Swarm, Giveth
roles: [ speaker, mentor ]
- id: qedk
name: QEDK
twitter: qedk_
bio: Engineering Polygon, Moonshot Collective
roles: [ speaker ]
remote: true
- id: radek-svarz
name: Radek Švarz
twitter: radk
bio: dCZK, Apus.finance
roles: [ speaker ]
- id: lauri-peltonen
name: Lauri Peltonen
twitter: lauripelto
bio: Ethereum & StarkNet @ Equilibrium
roles: [ speaker, mentor ]
# ---- ADVISORS ----
- id: mario-havel
name: Mario Havel
twitter: TMIYChao
bio: Ethereum Foundation, Bordel Hackerspace
roles: [ advisor ]
remote: true
- id: josef-j
name: Josef J
twitter: JosefJ_
bio: ETHPrague, PWN Finance (previously Ethereum Foundation & Devcon)
roles: [ advisor ]
remote: true
- id: anett
name: Anett Rolikova
twitter: AnettRolikova
bio: Nethermind, previously Ethereum Magicians
roles: [ advisor ]
remote: true
# ---- TEAM ----
- id: tree
name: Tree
twitter: treecz
bio: Vision, content | Gwei.cz and BohemianDAO founder, Ethereum enthusiast
roles: [ team ]
- id: tereza
name: Tereza
twitter: terkastarostova
bio: Production, sponsors | Holky v Kryptu co-founder, chairman of UTXO Foundation
roles: [ team ]
- id: exez
name: Exez
twitter: OndraPulc
bio: Visual identity, design
roles: [ team ]
- id: adam
name: Adam
nickname: vorcigernix
twitter: vorcigernix
bio: Website, community calls | Zitrone founder, member of Developer DAO and Forefront
roles: [ team ]
- id: hedvika
name: Hedvika
twitter: HedvikaPa
nickname: headwitch
bio: Mentor seeking, experiences curation
roles: [ team ]
- id: clairee
name: Clairee
twitter: De_luneClaire
bio: Social networks
roles: [ team ]
- id: jacob
name: Jacob
twitter: jacobjelen
bio: Networking support
roles: [ team ]
- id: dominika
name: Dominika
twitter: DominikaV5
bio: Volunteers
roles: [ team ]
- id: damsky
name: Damsky
twitter: helloitsdamsky
bio: Community calls
roles: [ team ]
# ---- SPONSORS ----
sponsors:
- id: ef
name: Ethereum Foundation
tier: ecdsa
url: https://ethereum.foundation/
- id: mitonc
name: MitonC
tier: 3des
url: https://mitonc.com/
- id: radicle
name: Radicle
tier: 3des
url: https://radicle.xyz/
- id: ethindia
name: ETHIndia
tier: community
url: https://ethindia.co/
- id: devfolio
name: Devfolio
tier: community
url: https://devfolio.co/

1
data/photos Symbolický odkaz
Zobrazit soubor

@ -0,0 +1 @@
../static/photos

5997
package-lock.json vygenerováno Normal file

Rozdílový obsah nebyl zobrazen, protože je příliš veliký Načíst rozdílové porovnání

38
package.json Normal file
Zobrazit soubor

@ -0,0 +1,38 @@
{
"name": "eb2-website",
"version": "v2022-10-16",
"private": true,
"scripts": {
"dev": "vite dev",
"build": "npm run make-data && vite build",
"preview": "vite preview",
"test": "playwright test",
"lint": "prettier --plugin-search-dir . --check . && eslint .",
"format": "prettier --plugin-search-dir . --write .",
"make-data": "node ./scripts/make-data.js",
"ipfs-deploy": "npx -y --loglevel=error github:burningtree/ipfs-cluster-deploy ./build ethbrno-web",
"postinstall": "npx playwright install --with-deps chromium"
},
"devDependencies": {
"@playwright/test": "^1.25.0",
"@sveltejs/adapter-auto": "next",
"@sveltejs/adapter-static": "next",
"@sveltejs/kit": "next",
"autoprefixer": "^10.4.12",
"eslint": "^8.16.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-svelte3": "^4.0.0",
"js-yaml": "^4.1.0",
"postcss": "^8.4.17",
"prettier": "^2.6.2",
"prettier-plugin-svelte": "^2.7.0",
"svelte": "^3.44.0",
"svelte-preprocess": "^4.10.7",
"tailwindcss": "^3.1.8",
"vite": "^3.1.0"
},
"type": "module",
"dependencies": {
"snarkdown": "^2.0.0"
}
}

13
playwright.config.js Normal file
Zobrazit soubor

@ -0,0 +1,13 @@
/** @type {import('@playwright/test').PlaywrightTestConfig} */
const config = {
use: {
browserName: 'chromium',
headless: true,
},
webServer: {
command: 'npm run build && npm run preview',
port: 4173
}
};
export default config;

6
postcss.config.cjs Normal file
Zobrazit soubor

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

33
scripts/make-data.js Executable file
Zobrazit soubor

@ -0,0 +1,33 @@
import yaml from 'js-yaml'
import fs from 'fs'
const DATA_FILE = './data/data.yaml'
const DATA_OUTPUT = './src/lib/data.json'
const DATA_STATIC_OUTPUT = './static/data.json'
const PKG_FILE = './package.json'
const VERSION_PATTERN = /^v\d{4}-\d{2}-\d{2}$/
function gen() {
// load data
const data = yaml.load(fs.readFileSync(DATA_FILE))
const pkg = JSON.parse(fs.readFileSync(PKG_FILE))
if (!pkg.version.match(VERSION_PATTERN)) {
console.error(`Version not match pattern [${VERSION_PATTERN}]: ${pkg.version}`)
process.exit(1)
}
// add generation time
data.time = new Date
data.version = pkg.version
// write to json
fs.writeFileSync(DATA_OUTPUT, JSON.stringify(data, null, 2))
console.log(`Writed: ${DATA_OUTPUT}`)
// write to json (static)
fs.writeFileSync(DATA_STATIC_OUTPUT, JSON.stringify(data, null, 2))
console.log(`Writed: ${DATA_STATIC_OUTPUT}`)
}
gen()

87
src/app.css Normal file
Zobrazit soubor

@ -0,0 +1,87 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer components {
.header {
@apply sm:text-4xl text-3xl mb-4 font-medium text-white;
}
.subhead {
@apply text-xl md:text-3xl my-2;
}
.list {
@apply text-white
}
}
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('/fonts/roboto-mono-v22-latin-300.woff2'), url('https://fonts.gstatic.com/s/robotomono/v22/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/roboto-mono-v22-latin-regular.woff2'), url('https://fonts.gstatic.com/s/robotomono/v22/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/fonts/roboto-mono-v22-latin-700.woff2'), url('https://fonts.gstatic.com/s/robotomono/v22/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body {
font-family: 'Roboto Mono', monospace;
background: white;
scrollbar-width: none;
scrollbar-color: black;
}
.serif {
font-family: 'Roboto Slab', serif;
}
.hyph {
overflow-wrap: break-word;
hyphens: manual;
-webkit-hyphenate-character: "...";
hyphenate-character: "...";
}
.clippic {
clip-path: polygon(85% 0%, 100% 20%, 100% 100%, 0% 100%, 0% 0%);
}
@layer components {
.active {
@apply underline;
}
}
.external::after {
padding-left: 10px;
content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13.5' height='13.5' aria-hidden='true' viewBox='0 0 24 24' class='iconExternalLink_nPIU'%3E%3Cpath fill='currentColor' d='M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z'%3E%3C/path%3E%3C/svg%3E");
}
.external.text-white::after {
content: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13.5' height='13.5' aria-hidden='true' viewBox='0 0 24 24' class='iconExternalLink_nPIU'%3E%3Cpath fill='white' d='M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z'%3E%3C/path%3E%3C/svg%3E");
}
.contributor-remote::after {
width: 1rem;
height: 1rem;
margin-left: 3px;
content: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' %3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.953 11.953 0 0112 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418' /%3E%3C/svg%3E");
}

38
src/app.html Normal file
Zobrazit soubor

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
%sveltekit.head%
<link rel="icon" href="%sveltekit.assets%/icons/favicon-32x32.png" />
<meta name="description" content="November 11 - 13, 2022, Impact Hub / Clubco, Brno, Czech Republic - Lunarpunk hackathon focused on privacy and security. We believe that privacy is a fundamental human right. And good privacy needs good security foundations." />
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<!-- Facebook Meta Tags -->
<meta property="og:url" content="https://ethbrno.cz/">
<meta property="og:type" content="website">
<meta property="og:title" content="ETHBrno² 2022">
<meta property="og:description" content="November 11 - 13, 2022, Impact Hub / Clubco, Brno, Czech Republic - Lunarpunk hackathon focused on privacy and security. We believe that privacy is a fundamental human right. And good privacy needs good security foundations.">
<meta property="og:image" content="https://ethbrno.pages.dev/ogbrno.png">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="ethbrno.cz">
<meta property="twitter:url" content="https://ethbrno.pages.dev/">
<meta name="twitter:title" content="ETHBrno² 2022">
<meta name="twitter:description" content="November 11 - 13, 2022, Impact Hub / Clubco, Brno, Czech Republic - Lunarpunk hackathon focused on privacy and security. We believe that privacy is a fundamental human right. And good privacy needs good security foundations.">
<meta name="twitter:image" content="https://dev.ethbrno.cz/ogbrno.png">
<!-- Plausible -->
<script defer data-domain="ethbrno.cz" src="https://x.gwei.cz/js/script.js"></script>
<meta name="viewport" content="width=device-width" />
</head>
<body>
<div>%sveltekit.body%</div>
</body>
</html>

59
src/lib/Footer.svelte Normal file
Zobrazit soubor

@ -0,0 +1,59 @@
<script>
import logo from '$lib/assets/logo_black.svg';
import cityscape from '$lib/assets/cityscape2.png';
import { time } from '$lib/data.json';
const options = {
weekday: 'long',
year: 'numeric',
month: 'long',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric',
timeZone: 'Europe/Prague'
};
</script>
<footer class="bg-black mx-auto">
<div class="pt-12">
<img src={cityscape} alt="cityscape" class="object-cover w-full" />
</div>
<div class="bg-white flex flex-col justify-end">
<div
class="container mx-auto px-4 flex flex-wrap flex-col sm:flex-row justify-center items-center mt-20"
>
<div>
<img src={logo} class=" h-6" alt="logo" />
</div>
<div class="md:inline-flex gap-10 sm:ml-auto sm:mt-0 mt-10 justify-center sm:justify-start">
<div class="flex justify-center">
<a class="text-black external" href="https://docs.ethbrno.cz/events/2022" rel="noopener noreferrer"
>Documentation
</a>
</div>
<div class="flex justify-center">
<a
class="text-black external"
href="https://twitter.com/ethbrno"
rel="noopener noreferrer"
>Twitter
</a>
</div>
<div class="flex justify-center">
/join
<a class="text-black external" href="https://matrix.ethbrno.cz" rel="noopener noreferrer"
>#ethbrno:gwei.cz
</a>
</div>
</div>
</div>
<div class="text-black text-center my-16 text-sm opacity-50 leading-7">
<a href="https://git.gwei.cz/ethbrno/eb2-website" target="_blank" class="external"
>Source code</a
>
- Generated @ {new Date(time).toLocaleString('en-GB', options)} (UTC+2)
</div>
</div>
</footer>

83
src/lib/Navigation.svelte Normal file
Zobrazit soubor

@ -0,0 +1,83 @@
<script>
/**
* @type {boolean}
*/
export let open;
import logo from '$lib/assets/logo_black.svg';
import { page } from '$app/stores';
</script>
<nav class="flex flex-wrap items-center justify-center py-6 bg-white mx-auto sticky top-0 z-50">
<div class="container flex flex-wrap items-center justify-between xl:max-w-screen-xl px-3">
<div class="w-full relative flex justify-between xl:w-auto xl:static xl:block xl:justify-start">
<a class="text-sm leading-relaxed flex items-center justify-center" href="/" on:click={() => (open = false)}>
<img src={logo} alt="logo" class="w-[145px] h-[54px] md:mr-14 ml-4 md:ml-0" />
</a>
<button
class="text-black cursor-pointer text-xl leading-none px-3 py-1 border border-solid border-transparent rounded bg-transparent block xl:hidden outline-none focus:outline-none"
type="button"
on:click={() => (open = !open)}
>
</button>
</div>
<div
class={open ? 'block w-full' : 'xl:flex flex-grow items-center hidden'}
id="navbar"
>
<div class="text-sm pt-10 xl:pt-0 pl-4 xl:pl-0">
<strong>November 11 - 13, 2022</strong><br />
Brno, Czech Republic
</div>
<div class="flex flex-grow items-center">
<ul
class="flex flex-col xl:flex-row xl:flex-grow-0 xl:mt-0 list-none xl:ml-auto text-base flex-grow my-8 xl:my-0"
>
<li>
<a
href="/"
class="px-5 py-2 flex items-center leading-snug text-black hover:opacity-75" on:click={() => (open = false)}
class:active={$page.url.pathname === '/'}>Home</a
>
</li>
<li>
<a
href="/venues"
class="px-5 py-2 flex items-center leading-snug text-black hover:opacity-75" on:click={() => (open = false)}
class:active={$page.url.pathname === '/venues/'}>Venues</a
>
</li>
<li>
<a
href="/contributors"
class="px-5 py-2 flex items-center leading-snug text-black hover:opacity-75" on:click={() => (open = false)}
class:active={$page.url.pathname.match(/^\/contributors\//)}
>Contributors</a
>
</li>
<li>
<a
href="https://matrix.ethbrno.cz"
rel="noopener noreferrer"
target="_blank"
on:click={() => (open = false)}
class="px-5 py-2 flex items-center leading-snug text-black hover:opacity-75 external">Chat</a
>
</li>
<li class="pl-0 xl:pl-5">
<a
href="https://join.ethbrno.cz"
rel="noopener noreferrer"
target="_blank"
on:click={() => (open = false)}
class="px-5 py-2 flex items-center bg-black text-white leading-snug hover:opacity-75 external"
>Join</a
>
</li>
</ul>
</div>
</div>
</div>
</nav>

binární
src/lib/assets/cityscape2.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 75 KiB

Rozdílový obsah nebyl zobrazen, protože některé řádky jsou příliš dlouhá

Za

Šířka:  |  Výška:  |  Velikost: 6.4 KiB

8
src/routes/+layout.js Normal file
Zobrazit soubor

@ -0,0 +1,8 @@
/** @type {import('./$types').PageLoad} */
export const prerender = true;
export async function load() {
return {
title: 'ETHBrno² 2022'
}
}

Zobrazit soubor

@ -0,0 +1,9 @@
<script>
import '../app.css';
import Navigation from '$lib/Navigation.svelte';
import Footer from '$lib/Footer.svelte';
</script>
<Navigation open={false} />
<slot />
<Footer />

171
src/routes/+page.svelte Normal file
Zobrazit soubor

@ -0,0 +1,171 @@
<script>
import { sponsors } from '$lib/data.json';
const tiers = [
{
id: 'schnorr',
name: 'Schnorr'
},
{
id: 'ecdsa',
name: 'ECDSA'
},
{
id: 'aes',
name: 'AES'
},
{
id: '3des',
name: '3DES'
},
{
id: 'community',
name: 'Community'
}
];
</script>
<svelte:head>
<title>ETHBrno² 2022</title>
</svelte:head>
<section class="text-gray-400 bg-black border-b">
<div class="w-full mx-auto flex md:flex-row md:h-5/6 flex-col items-center">
<div class="md:w-5/12 md:mb-0 mb-4 md:flex justify-center md:h-[800px] bg-white">
<img src="cam2.png" class="object-cover object-center invert -ml-20 md:ml-0 md:invert-0 -mt-20 md:mt-0" alt="cam" />
</div>
<div
class="md:w-5/12 xl:pr-16 md:pr-4 pt-4 flex flex-col md:items-start md:text-left mx-auto items-center text-center text-white transition-transform px-4 md:px-0"
>
<img src="logo.svg" class="md:-ml-4 p-2 md:p-0 w-[250px] md:w-[343px] " alt="logo" />
<p class="text-xl md:text-3xl my-2">privacy {`&`} security edition</p>
<p class="text-base md:text-xl">NOVEMBER 11-13, 2022</p>
<p class="text-base md:text-xl">Brno, Czech republic</p>
<div class="h-[1px] bg-white w-full my-2 opacity-20" />
<p class="mb-8 py-4 leading-relaxed opacity-30 text-sm md:text-lg font-light" data-testid="tags">
#freedom #anonymity #non-kyc #encryption #selfsovereignty #p2p #opensource #web3
#smartcontracts #audits #vulnerabilities #analytics #wallets #scams #darkforest #mev
#zeroknowledgeproofs #cypherpunk #lunarpunk #hackathon
</p>
</div>
</div>
</section>
<section class="text-black bg-white body-font border-b">
<div class="container mx-auto flex px-5 py-12 md:py-24 md:flex-row flex-col items-center">
<div
class="xl:flex-grow md:w-1/2 xl:pl-32 md:pl-16 xl:pr-32 md:pr-16 flex flex-col md:items-start md:text-left mb-16 md:mb-0 items-center text-center"
>
<h1 class="md:text-5xl text-3xl font-bold mb-4">About</h1>
<p class="mb-8 leading-relaxed">
<a href="https://docs.ethbrno.cz" target="_blank">ETHBrno²</a> is an annual independent {`&`}
open community hackathon for supporters of decentralised finance, smart contracts and Web3 happening
in
<a href="https://en.wikipedia.org/wiki/Brno" target="_blank" class="external"
>Brno, Czech Republic</a
>. ETHBrno² is the second, and we believe the best yet, edition.
</p>
<!--p class="mb-8 leading-relaxed">
ETHBrno² events are organized by <a href="https://gwei.cz" target="_blank" class="external">Gwei.cz community</a>
with the help of the <a href="https://utxo.foundation" target="_blank" class="external">UTXO Foundation</a>.
</p-->
<p class="mb-8 leading-relaxed">
This year we are focusing on <strong>privacy and security</strong> topics.
</p>
<p class="mb-8 leading-relaxed">
You can read more in the article <a
href="https://mirror.xyz/ethbrno.eth/6BH9cUVuD85hy5O0L5cOOOE7niSA9Yo5eWsXVzKOlO4"
target="_blank"
class="external">"Announcing ETHBrno²" on Mirror</a
>.
</p>
<div class="flex justify-center flex-wrap">
<a
href="https://join.ethbrno.cz/"
class="inline-flex text-white bg-black border-0 py-2 px-6 focus:outline-none hover:bg-gray-900 text-lg external"
>Apply To Hack</a
>
<a
href="https://ethbrno.cz/sponsor-deck.pdf"
target="_blank"
rel="noopener noreferrer"
class="ml-4 inline-flex border-0 py-2 px-6 focus:outline-none hover:bg-gray-100 text-lg underline external"
>Sponsor</a
>
</div>
</div>
<div class="xl:max-w-lg xl:w-full md:w-1/2 w-[300px]">
<img class="object-cover object-center" alt="hero" src="key.png" />
</div>
</div>
</section>
<section class="text-white bg-black body-font">
<div class="container mx-auto flex px-5 py-12 md:py-24 md:flex-row flex-col-reverse items-center">
<div class="xl:max-w-lg xl:w-full md:w-1/2 w-[150px] md:mb-0 mt-10 md:mb-10 flex justify-center">
<img class="object-cover object-center" alt="hero" src="lock.png" />
</div>
<div
class="xl:flex-grow md:w-1/2 xl:pl-32 md:pl-2 xl:pr-32 md:pr-8 flex flex-col md:items-start md:text-left items-center text-center"
>
<h1 class="md:text-5xl text-3xl mb-4 font-bold text-white">Manifesto</h1>
<p class="mb-4 leading-relaxed">
We believe that privacy is a fundamental human right. And good privacy needs good security
foundations. Especially today, in a digital age full of people, organizations or governments
that want to control you, your money or your data. Therefore, the second edition of ETHBrno
(ETHBrno²) will be mainly dedicated to these important topics ― privacy & security.
</p>
<p class="mb-4 leading-relaxed">
Our hackathon is for everyone who understands the urgency of these issues and wants to help.
We want to present the current progress in this sector as well as the projects, technologies
and people involved. We are Ethereum people, but we welcome creators and fans of all
blockchains and directions.
</p>
<p class="mb-4 leading-relaxed">
Let's learn together to defend against all threats, whether it's loss of privacy and state
oppression, smart-contract exploits or simple phishing scams. Let's learn how to analyse
them retrospectively. Let's learn how to use the right tools, and if we don't have them,
let's create them together.
</p>
<p class="leading-relaxed">Don't Trust. Verify. - Run a node - Protect privacy</p>
<p class="mt-8 leading-relaxed">
<a
href="https://docs.ethbrno.cz/events/2022/hackathon"
class="inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg external"
>Read more about hackathon</a
>
</p>
</div>
</div>
</section>
<section class="text-white bg-black body-font">
<div class="container mx-auto flex px-5 py-24 md:flex-row flex-col items-center">
<div
class="flex-grow w-full px-4 md:px-0 xl:pl-32 md:pl-16 xl:pr-32 md:pr-16 flex flex-col md:items-start md:text-left items-center text-center"
>
<h1 class="md:text-5xl text-3xl mb-8 font-bold text-white">Sponsors</h1>
{#each tiers as tier, tierNumber}
<div class="mb-4 flex flex-row w-full items-center">
<p class="leading-relaxed font-bold whitespace-nowrap">{tier.name}</p>
<div class="border-b border-white border-dashed w-full ml-4 opacity-30" />
<p class="whitespace-nowrap ml-4 opacity-30">Tier {tierNumber}</p>
</div>
<div
class="flex flex-col md:flex-row items-center justify-center w-full md:m-6 border-l border-white/30"
>
{#each sponsors.filter((x) => x.tier.includes(tier.id)) as sponsor}
<a href={sponsor.url} rel="noopener noreferrer" target="_blank" alt="link to">
<img
class="w-60 m-6"
src="/photos/sponsors/{sponsor.id}.png"
alt="{sponsor.name} Logo"
/>
</a>
{/each}
</div>
{/each}
</div>
</div>
</section>

Zobrazit soubor

@ -0,0 +1,19 @@
/** @type {import('./$types').PageLoad} */
import { error } from '@sveltejs/kit';
import { contributorTypes, contributors } from '$lib/data.json';
export const prerender = true;
export async function load({ parent, params }) {
let type = params.type.replace(/\//, "");
if (!type.trim()) {
type = 'all'
}
const typeConfig = contributorTypes[type]
if (!typeConfig) {
throw error(404, 'Not found');
}
return { type, typeConfig, contributors, contributorTypes }
}

Zobrazit soubor

@ -0,0 +1,81 @@
<script>
//import { contributors, contributorTypes } from '$lib/data.json';
import { base } from '$app/paths';
import { onMount } from 'svelte';
export let data;
function wrapContributor(c) {
if (c.twitter) {
c.link = 'https://twitter.com/' + c.twitter;
}
return c;
}
onMount(async () => {
//console.log(data.contributors);
const response = await fetch(`${base}/data.json`);
const result = await response.json();
data.contributors = result.contributors;
//console.log(data.contributors);
});
$: filteredContributors = data.contributors
.filter((c) => data.type === 'all' || c.roles.includes(data.typeConfig.role))
.sort((a, b) => 0.5 - Math.random())
.map(wrapContributor);
</script>
<svelte:head>
<title>Contributors{data.type !== 'all' ? `: ${data.typeConfig.title}` : ''} | ETHBrno²</title>
</svelte:head>
<section
class="text-white body-font bg-black px-2 py-6 md:py-12 flex justify-center flex-row overflow-x-scroll flex-wrap text-sm md:text-base"
>
{#each Object.entries(data.contributorTypes) as [ctKey, ct]}
<a
href="/contributors/{ctKey === 'all' ? '' : ctKey}"
class="px-3 py-2 md:px-5 md:py-2 border m-2 {ctKey === data.type
? 'text-black bg-white'
: 'hover:outline-none hover:bg-gray-600'}">{ct.title}</a
>
{/each}
</section>
<section class="text-gray-400 body-font bg-black py-6 md:py-12">
<div class=" px-5 mx-auto">
<div class="flex flex-wrap justify-center" data-testid="list">
{#if filteredContributors.length > 0}
{#each filteredContributors as item}
<div class="bg-black bg-opacity-40 p-6 h-full w-full md:w-1/3 lg:w-1/4">
<a href={item.link} target="_blank">
<img
class="h-40 md:h-60 w-full object-cover object-center mb-6 grayscale hover:grayscale-0"
loading="lazy"
src={`/photos/contributors/${item.id}.jpg`}
alt={item.desc}
/>
</a>
<h3
class="tracking-widest text-gray-400 text-xs font-medium title-font flex flex-row divide-x"
>
{#each item.roles as role}
<span class="underline">{role}</span>
{/each}
</h3>
<div class="flex flex-row mb-2 {item.remote ? 'contributor-remote' : ''}">
<a class="text-lg text-white font-medium title-font" href={item.link} target="_blank">
{item.name}
{#if item.nickname}
({item.nickname})
{/if}
</a>
</div>
<p class="leading-relaxed text-sm">{item.bio}</p>
</div>
{/each}
{:else}
<div class="p-6">Nobody's here yet.</div>
{/if}
</div>
</div>
</section>

Zobrazit soubor

@ -0,0 +1,13 @@
/** @type {import('./$types').PageLoad} */
import { error } from '@sveltejs/kit';
import snarkdown from 'snarkdown';
export async function load({ fetch }) {
const response = await fetch("https://raw.githubusercontent.com/ethbrno/docs/master/events/2022/hackathon/hacker-manual-wip.md").then((r) => r.text());
//console.log(response);
const compiledResponse = await snarkdown(response);
//console.log('compiledResponse is: ', compiledResponse);
return { content: compiledResponse };
}

Zobrazit soubor

@ -0,0 +1,11 @@
<script>
export let data;
</script>
<section class="text-white bg-black body-font">
<div class="container mx-auto py-12 md:py-24 xl:max-w-screen-xl md:px-0 px-4">
<div class="[&_h1]:header [&_h2]:subhead [&_li]:list [&_h3]:font-bold">
{@html data.content}
</div>
</div>
</section>

Zobrazit soubor

@ -0,0 +1,111 @@
<script>
export let data;
</script>
<svelte:head>
<title>Venues | {data.title}</title>
</svelte:head>
<section class="text-white bg-black body-font">
<div class="container mx-auto flex py-12 md:py-24 md:flex-row flex-col items-center xl:max-w-screen-xl md:px-0 px-4">
<div
class="xl:flex-grow xl:pr-24 md:pr-16 flex flex-col lg:items-start lg:text-left mb-16 md:mb-0 items-center text-center"
>
<h1 class="title-font sm:text-4xl text-3xl mb-4 font-medium text-white">
<a href="https://www.hubbrno.cz/en/" class="hover:underline"> Impact Hub Brno </a>
</h1>
<p class="leading-relaxed text-white">Opening hours:</p>
<p class="leading-relaxed mb-5 text-white">Fri Nov 11 13:00 - Sun Nov 13 20:00 (nonstop!)</p>
<div class="leading-relaxed relative mb-4">
The main venue will be a modern coworking space called Impact Hub, just a few minutes walk
from the city centre and the main train station. In less than 7 years of its existence, it
has become an important part of Brno's freelancing community, inspiring and connecting many
people. Great place for our hackathon, don't you think?
</div>
<div class="leading-relaxed relative mb-4">
Impact Hub will serve as the main basecamp for the hackathon and will be available for
hackers all day 24/7.
</div>
<div class="leading-relaxed relative mb-4">
You'll have everything you might need - different work areas (single or team, sitting or
standing), fast internet, power sockets everywhere, meeting rooms, refreshments and much
more. We want you to feel as comfortable as possible and we will do everything we can to
make that happen.
</div>
<div class="flex flex-wrap justify-center gap-4">
<a
href="https://www.openstreetmap.org/way/339769163"
target="_blank"
class="inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg external"
>
OpenStreetMap
</a>
<a
href="https://goo.gl/maps/8bKsGHhVSYrF8ZmE8"
target="_blank"
class="inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg external"
>
Google Maps
</a>
</div>
</div>
<div class="xl:max-w-lg xl:w-full w-5/6 flex md:justify-end">
<img
class="object-cover object-center "
decoding="async"
loading="lazy"
src="/venues/ihhero.png"
alt="venue"
/>
</div>
</div>
</section>
<section class="text-white bg-black body-font">
<div class="container mx-auto flex py-12 md:py-24 md:flex-row flex-col-reverse items-center xl:max-w-screen-xl md:px-0 px-4">
<div class="xl:max-w-lg xl:w-full md:w-1/2 w-5/6 md:mb-0 mt-10 md:mt-0">
<img
class="object-cover object-center grayscale hover:grayscale-0"
decoding="async"
loading="lazy"
src="/venues/cc1.png"
alt="venue"
/>
</div>
<div
class="xl:flex-grow md:w-1/2 xl:pl-24 md:pl-16 flex flex-col md:items-start md:text-left items-center text-center"
>
<h1 class="title-font sm:text-4xl text-3xl mb-4 font-medium text-white">Clubco Brno</h1>
<p class="leading-relaxed text-white">Opening hours:</p>
<p class="leading-relaxed mb-5 text-white">
Fri Nov 11: 14:30 - 22:00, Sat Nov 10: 9:00 - 22:00, Sun Nov 13: 9:00 - 17:00
</p>
<p class="relative mb-4">
Additional venue, only 5 minutes walk (400m) from the main venue (Impact Hub).
</p>
{' '}
<p class="relative mb-4">
It will be an additional space for hackers that offers another style, with private meeting
rooms and open workspaces. It also includes an event space where additional workshops and
lectures will be held.
</p>
<div class="relative mb-4">
This location will NOT be open 24/7, you will need to move to the Impact Hub for the night.
</div>
<div class="flex flex-wrap justify-center gap-4">
<a
href="https://www.openstreetmap.org/node/8848071783"
target="_blank"
class="inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg external"
>
OpenStreetMap
</a>
<a
href="https://g.page/clubco-brno"
target="_blank"
class="inline-flex text-black bg-white border-0 py-2 px-6 focus:outline-none hover:bg-gray-600 text-lg external"
>
Google Maps
</a>
</div>
</div>
</div>
</section>

4
static/200.html Normal file
Zobrazit soubor

@ -0,0 +1,4 @@
<h1>We need JavaScript</h1>
<p>You reached part of the web that use javascript to fetch the data from external sources. When we had a choice between
making javascript mandatory and using a centralized infrastructure, we picked prior. Apologies for any
inconvenience.</p>

binární
static/cam2.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 57 KiB

binární
static/cityscape.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 56 KiB

16
static/duotone.svg Normal file
Zobrazit soubor

@ -0,0 +1,16 @@
<svg xmlns="http://www.w3.org/2000/svg">
<filter id="duotone_peachypink">
<feColorMatrix type="matrix" result="grayscale"
values="1 0 0 0 0
1 0 0 0 0
1 0 0 0 0
0 0 0 1 0" >
</feColorMatrix>
<feComponentTransfer color-interpolation-filters="sRGB" result="duotone">
<feFuncR type="table" tableValues="0.7411764706 0.9882352941"></feFuncR>
<feFuncG type="table" tableValues="0.0431372549 0.7333333333"></feFuncG>
<feFuncB type="table" tableValues="0.568627451 0.05098039216"></feFuncB>
<feFuncA type="table" tableValues="0 1"></feFuncA>
</feComponentTransfer>
</filter>
</svg>

Za

Šířka:  |  Výška:  |  Velikost: 704 B

Binární soubor nebyl zobrazen.

Binární soubor nebyl zobrazen.

Binární soubor nebyl zobrazen.

Binární soubor nebyl zobrazen.

Binární soubor nebyl zobrazen.

Binární soubor nebyl zobrazen.

16
static/icalendar.ics Normal file
Zobrazit soubor

@ -0,0 +1,16 @@
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//ICalendarCreator//NONSGML//EN
BEGIN:VEVENT
DTSTART;VALUE=DATE:20221111
DTEND;VALUE=DATE:20221113
SUMMARY:ETHBrno
LOCATION:Impact Hub, Brno
DESCRIPTION:ETHBrno² is an annual independent & open community hackathon (former conference) for supporters of decentralised finance, smart contracts and Web3 happening in Brno, Czech Republic. ETHBrno² is the second, and we believe the best yet, edition.
BEGIN:VALARM
TRIGGER:-PT7D
ACTION:DISPLAY
DESCRIPTION:ETHBrno
END:VALARM
END:VEVENT
END:VCALENDAR

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 4.3 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 15 KiB

binární
static/icons/apple-touch-icon.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 3.8 KiB

binární
static/icons/favicon-16x16.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 337 B

binární
static/icons/favicon-32x32.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 598 B

binární
static/icons/favicon.ico Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 15 KiB

Zobrazit soubor

@ -0,0 +1,19 @@
{
"name": "ETH Brno volume 2",
"short_name": "ETHBrno",
"icons": [
{
"src": "/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#000",
"background_color": "#000",
"display": "standalone"
}

binární
static/key.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 20 KiB

binární
static/key_black.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 14 KiB

binární
static/lock.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 12 KiB

7
static/logo.svg Normal file

Rozdílový obsah nebyl zobrazen, protože některé řádky jsou příliš dlouhá

Za

Šířka:  |  Výška:  |  Velikost: 6.4 KiB

binární
static/logo3.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 118 KiB

binární
static/logo_key.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 4.9 KiB

7
static/logo_key.svg Normal file
Zobrazit soubor

@ -0,0 +1,7 @@
<svg width="516" height="401" viewBox="0 0 516 401" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="85.7948" cy="85.7948" r="70.5424" stroke="white" stroke-width="30.5048"/>
<path d="M183.029 304.914V280.114H100.138V239.116H210.458V213.534H68.6355V280.114V304.914V376.187H210.793V350.828H100.138V304.914H183.029Z" fill="white"/>
<path d="M377.581 239.116V213.534L244.544 213.534V239.116L295.92 239.116V377.186H327.423V239.116H377.581Z" fill="white"/>
<path d="M516 378.867V216.215H484.944V282.907H438.919V216.215H407.751V378.867H438.919V308.377H484.944V378.867H516Z" fill="white"/>
<rect x="68.6355" y="152.524" width="30.5048" height="247.852" fill="white"/>
</svg>

Za

Šířka:  |  Výška:  |  Velikost: 679 B

binární
static/ogbrno.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 84 KiB

binární
static/photos/contributors/adam.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 37 KiB

binární
static/photos/contributors/anett.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 33 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 28 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 26 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 47 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 45 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 19 KiB

binární
static/photos/contributors/exez.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 41 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 29 KiB

binární
static/photos/contributors/jacob.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 23 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 44 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 23 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 241 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 84 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 15 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 48 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 46 KiB

binární
static/photos/contributors/qedk.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 40 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 171 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 34 KiB

binární
static/photos/contributors/silur.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 86 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 42 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 116 KiB

binární
static/photos/contributors/tree.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 32 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 38 KiB

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 49 KiB

binární
static/photos/sponsors/devfolio.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 1.8 KiB

binární
static/photos/sponsors/ef.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 9.6 KiB

binární
static/photos/sponsors/ethindia.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 3.5 KiB

binární
static/photos/sponsors/mitonc.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 17 KiB

binární
static/photos/sponsors/radicle.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 7.9 KiB

binární
static/sponsor-deck.pdf Normal file

Binární soubor nebyl zobrazen.

1
static/user.svg Normal file
Zobrazit soubor

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-user"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>

Za

Šířka:  |  Výška:  |  Velikost: 313 B

binární
static/venues/cc1.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc1.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 487 KiB

binární
static/venues/cc1.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 46 KiB

binární
static/venues/cc2.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc2.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 772 KiB

binární
static/venues/cc2.png Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 36 KiB

binární
static/venues/cc3.avif Normal file

Binární soubor nebyl zobrazen.

binární
static/venues/cc3.jpg Normal file

Binární soubor nebyl zobrazen.

Za

Šířka:  |  Výška:  |  Velikost: 530 KiB

binární
static/venues/cc4.avif Normal file

Binární soubor nebyl zobrazen.

Některé soubory nejsou zobrazny, neboť je v této revizi změněno mnoho souborů Zobrazit více