mirror of
https://github.com/web3privacy/web
synced 2024-10-15 18:26:27 +02:00
data update
This commit is contained in:
parent
e7abd5895a
commit
843dc0b205
11 changed files with 423 additions and 320 deletions
|
@ -8,12 +8,12 @@
|
||||||
"build": "astro build",
|
"build": "astro build",
|
||||||
"preview": "astro preview",
|
"preview": "astro preview",
|
||||||
"astro": "astro",
|
"astro": "astro",
|
||||||
|
"core": "deno run --allow-all utils/core.js",
|
||||||
"contribs": "deno run --allow-all utils/contributors.js",
|
"contribs": "deno run --allow-all utils/contributors.js",
|
||||||
"events": "deno run --allow-all utils/events.js",
|
|
||||||
"articles": "deno run --allow-all utils/articles.js",
|
"articles": "deno run --allow-all utils/articles.js",
|
||||||
"talks": "deno run --allow-all utils/talks.js",
|
"talks": "deno run --allow-all utils/talks.js",
|
||||||
"explorer": "deno run --allow-all utils/explorer.js",
|
"explorer": "deno run --allow-all utils/explorer.js",
|
||||||
"all": "npm run contribs && npm run events && npm run articles && npm run talks && npm run explorer"
|
"all": "npm run core && npm run contribs && npm run articles && npm run talks && npm run explorer"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/tailwind": "^5.0.2",
|
"@astrojs/tailwind": "^5.0.2",
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
import * as config from '../config.yaml';
|
import * as config from '../config.yaml';
|
||||||
|
import core from '../core.json';
|
||||||
import contributors from '../contributors.json';
|
import contributors from '../contributors.json';
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -9,7 +10,7 @@ import contributors from '../contributors.json';
|
||||||
<h1><a href="https://docs.web3privacy.info/follow-us">Follow us</a></h1>
|
<h1><a href="https://docs.web3privacy.info/follow-us">Follow us</a></h1>
|
||||||
<div class="w3pn-wgrid">
|
<div class="w3pn-wgrid">
|
||||||
{config.landing.follow.map((item) => (
|
{config.landing.follow.map((item) => (
|
||||||
<a href={item.url || config.links[item.link]} target="_blank">
|
<a href={item.url || core.links[item.link]} target="_blank">
|
||||||
<span><span class="icon" class:list={[item.ico || ""]}></span></span>
|
<span><span class="icon" class:list={[item.ico || ""]}></span></span>
|
||||||
<span class="title">{item.name}</span>
|
<span class="title">{item.name}</span>
|
||||||
<span>{item.text}</span>
|
<span>{item.text}</span>
|
||||||
|
@ -21,7 +22,7 @@ import contributors from '../contributors.json';
|
||||||
<h1><a href="https://docs.web3privacy.info/communication">Coordination</a></h1>
|
<h1><a href="https://docs.web3privacy.info/communication">Coordination</a></h1>
|
||||||
<div class="w3pn-wgrid">
|
<div class="w3pn-wgrid">
|
||||||
{config.landing.coord.map((item) => (
|
{config.landing.coord.map((item) => (
|
||||||
<a href={item.url || config.links[item.link]} target="_blank">
|
<a href={item.url || core.links[item.link]} target="_blank">
|
||||||
<span><span class="icon" class:list={[item.ico || ""]}></span></span>
|
<span><span class="icon" class:list={[item.ico || ""]}></span></span>
|
||||||
<span class="title">{item.name}</span>
|
<span class="title">{item.name}</span>
|
||||||
<span>{item.text}</span>
|
<span>{item.text}</span>
|
||||||
|
|
|
@ -1,16 +1,4 @@
|
||||||
title: Web3Privacy Now
|
title: Web3Privacy Now
|
||||||
links:
|
|
||||||
docs: https://docs.web3privacy.info/
|
|
||||||
manifesto: https://docs.web3privacy.info/manifesto
|
|
||||||
github: https://github.com/web3privacy
|
|
||||||
twitter: https://twitter.com/web3privacy
|
|
||||||
matrix: https://matrix.web3privacy.info
|
|
||||||
bluesky: https://bsky.app/profile/web3privacy.info
|
|
||||||
mirror: https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/
|
|
||||||
youtube: https://youtube.com/@Web3PrivacyNow/
|
|
||||||
forum: https://forum.web3privacy.info
|
|
||||||
explorer: https://explorer.web3privacy.info
|
|
||||||
telegram: https://t.me/web3privacynow
|
|
||||||
header:
|
header:
|
||||||
menu:
|
menu:
|
||||||
- name: Home
|
- name: Home
|
||||||
|
|
393
src/core.json
Normal file
393
src/core.json
Normal file
|
@ -0,0 +1,393 @@
|
||||||
|
{
|
||||||
|
"name": "Web3Privacy Now",
|
||||||
|
"links": {
|
||||||
|
"ocs": "https://docs.web3privacy.info/",
|
||||||
|
"manifesto": "https://docs.web3privacy.info/manifesto",
|
||||||
|
"github": "https://github.com/web3privacy",
|
||||||
|
"twitter": "https://twitter.com/web3privacy",
|
||||||
|
"matrix": "https://matrix.web3privacy.info",
|
||||||
|
"bluesky": "https://bsky.app/profile/web3privacy.info",
|
||||||
|
"mirror": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/",
|
||||||
|
"youtube": "https://youtube.com/@Web3PrivacyNow/",
|
||||||
|
"forum": "https://forum.web3privacy.info",
|
||||||
|
"explorer": "https://explorer.web3privacy.info",
|
||||||
|
"telegram": "https://t.me/web3privacynow"
|
||||||
|
},
|
||||||
|
"core-team": [
|
||||||
|
{
|
||||||
|
"name": "Tree"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Mykola"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "PG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Coinmandeer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"projects": [
|
||||||
|
{
|
||||||
|
"id": "privacy-explorer",
|
||||||
|
"name": "Privacy Explorer",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/projects/privacy-explorer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "privacy-tech-awards",
|
||||||
|
"name": "Privacy Tech Awards",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/projects/privacy-tech-awards"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "annual-report",
|
||||||
|
"name": "Privacy Annual Report",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/annual-report"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "pagency",
|
||||||
|
"name": "Pagency Framework for private use-case ideation",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/pagency"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hiring",
|
||||||
|
"name": "Privacy Projects Hiring",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/hiring"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "privacy-guides",
|
||||||
|
"name": "Privacy Guides",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/privacy-guides"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "usecase-db",
|
||||||
|
"name": "Privacy Use-Cases DB",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/usecase-db"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "zk-solutions",
|
||||||
|
"name": "ZK Solutions DB",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/zk-solutions"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "hackathon-pack",
|
||||||
|
"name": "Hackathon Curation Pack",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/hackathon-pack"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "privacy-ecosystem-report",
|
||||||
|
"name": "Ethereum Privacy Ecosystem: report",
|
||||||
|
"type": "research",
|
||||||
|
"links": {
|
||||||
|
"docs": "https://docs.web3privacy.info/research/Ethereum%20Privacy%20Ecosystem"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"events": [
|
||||||
|
{
|
||||||
|
"id": "w3ps1",
|
||||||
|
"type": "summit",
|
||||||
|
"date": "2023-06-05",
|
||||||
|
"city": "Prague",
|
||||||
|
"country": "cz",
|
||||||
|
"place": "[X10](https://www.divadlox10.cz/)",
|
||||||
|
"confirmed": true,
|
||||||
|
"coincidence": "[ETHPrague](https://ethprague.com/)",
|
||||||
|
"lead": "Tree",
|
||||||
|
"slots": 16,
|
||||||
|
"visitors": 180,
|
||||||
|
"links": {
|
||||||
|
"web": "https://prague.web3privacy.info/",
|
||||||
|
"git": "https://github.com/web3privacy/w3ps1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3ps2",
|
||||||
|
"type": "summit",
|
||||||
|
"date": "2023-10-05",
|
||||||
|
"city": "Rome",
|
||||||
|
"country": "it",
|
||||||
|
"place": "[Villaggio Globale](https://maps.app.goo.gl/S7kUruNvbpjgHuSh9)",
|
||||||
|
"confirmed": true,
|
||||||
|
"coincidence": "[ETHRome](https://ethrome.org/)",
|
||||||
|
"lead": "PG",
|
||||||
|
"slots": 10,
|
||||||
|
"visitors": 139,
|
||||||
|
"links": {
|
||||||
|
"web": "https://lu.ma/web3privacynow_rome"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-prg1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2023-11-14",
|
||||||
|
"city": "Prague",
|
||||||
|
"country": "cz",
|
||||||
|
"place": "[Dílna](https://kafevdilne.cz/)",
|
||||||
|
"confirmed": true,
|
||||||
|
"coincidence": "[DCxPrague](https://dcxprague.org/)",
|
||||||
|
"lead": "Tree",
|
||||||
|
"slots": 3,
|
||||||
|
"visitors": 15,
|
||||||
|
"links": {
|
||||||
|
"web": "https://lu.ma/w3pm-prg1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-ath1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/Q1",
|
||||||
|
"city": "Athens",
|
||||||
|
"country": "gr",
|
||||||
|
"coincidence": "",
|
||||||
|
"lead": "Mykola",
|
||||||
|
"optional": true,
|
||||||
|
"slots": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-lib1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/Mar",
|
||||||
|
"city": "Liberec",
|
||||||
|
"country": "cz",
|
||||||
|
"coincidence": "[ETHBohemia](https://ethbohemia.ethevents.club/)",
|
||||||
|
"lead": "Tree",
|
||||||
|
"optional": true,
|
||||||
|
"slots": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-buc1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-03-28",
|
||||||
|
"city": "Bucharest",
|
||||||
|
"country": "ro",
|
||||||
|
"coincidence": "[ETHBucharest](https://www.ethbucharest.xyz/)",
|
||||||
|
"optional": true,
|
||||||
|
"slots": 3,
|
||||||
|
"lead": "Tree",
|
||||||
|
"helpers": [
|
||||||
|
"Alina"
|
||||||
|
],
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-bucharest1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-ams1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-04-11",
|
||||||
|
"city": "Amsterdam",
|
||||||
|
"country": "nl",
|
||||||
|
"lead": "PG",
|
||||||
|
"helpers": [
|
||||||
|
"Mykola",
|
||||||
|
"Tree",
|
||||||
|
"Alina"
|
||||||
|
],
|
||||||
|
"coincidence": "[ETHDam](https://www.ethdam.com/)",
|
||||||
|
"slots": 3,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-ams1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-tal1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/Apr",
|
||||||
|
"city": "Tallinn",
|
||||||
|
"country": "ee",
|
||||||
|
"coincidence": "[ETHTallinn](https://www.ethtallinn.org/)",
|
||||||
|
"slots": 3,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-por1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/May",
|
||||||
|
"city": "Porto",
|
||||||
|
"country": "pt",
|
||||||
|
"coincidence": "[ETHPorto](https://ethporto.org/)",
|
||||||
|
"slots": 3,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-ber1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-05-22",
|
||||||
|
"city": "Berlin",
|
||||||
|
"country": "de",
|
||||||
|
"place": "[c-base](https://c-base.org/)",
|
||||||
|
"coincidence": "ETHBerlin",
|
||||||
|
"lead": "Tree",
|
||||||
|
"slots": 3,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-berlin1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3ps3",
|
||||||
|
"type": "summit",
|
||||||
|
"date": "2024-05-30",
|
||||||
|
"city": "Prague",
|
||||||
|
"country": "cz",
|
||||||
|
"coincidence": "ETHPrague",
|
||||||
|
"lead": "Tree",
|
||||||
|
"helpers": [
|
||||||
|
"PG",
|
||||||
|
"Mykola",
|
||||||
|
"Coinmandeer"
|
||||||
|
],
|
||||||
|
"slots": 16,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-summit-prague2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3ph1",
|
||||||
|
"type": "hackathon",
|
||||||
|
"date": "2024-06-19",
|
||||||
|
"days": 7,
|
||||||
|
"city": "Bled",
|
||||||
|
"country": "si",
|
||||||
|
"place": "[Subwork](https://subwork.xyz/)",
|
||||||
|
"confirmed": true,
|
||||||
|
"coincidence": "W3PN Hackathon",
|
||||||
|
"lead": "Tree",
|
||||||
|
"helpers": [
|
||||||
|
"PG",
|
||||||
|
"Mykola",
|
||||||
|
"Coinmandeer"
|
||||||
|
],
|
||||||
|
"slots": 10,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-bled-hackathon1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-lju1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-06-21",
|
||||||
|
"city": "Ljubljana",
|
||||||
|
"country": "si",
|
||||||
|
"coincidence": "W3PN Hackathon",
|
||||||
|
"lead": "Tree",
|
||||||
|
"helpers": [
|
||||||
|
"PG",
|
||||||
|
"Mykola",
|
||||||
|
"Coinmandeer"
|
||||||
|
],
|
||||||
|
"slots": 5,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-ljubljana1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-bcn2",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/Jul",
|
||||||
|
"city": "Barcelona",
|
||||||
|
"country": "es",
|
||||||
|
"coincidence": "ETHBarcelona",
|
||||||
|
"slots": 3,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-bru1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-07-12",
|
||||||
|
"city": "Brussels",
|
||||||
|
"country": "be",
|
||||||
|
"coincidence": "[EthCC](https://www.ethcc.io/)",
|
||||||
|
"slots": 3,
|
||||||
|
"lead": "Mykola",
|
||||||
|
"helpers": [
|
||||||
|
"Tree"
|
||||||
|
],
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-bru1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-waw1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024/Sep",
|
||||||
|
"city": "Warsaw",
|
||||||
|
"country": "pl",
|
||||||
|
"coincidence": "ETHWarsaw",
|
||||||
|
"lead": "Tree",
|
||||||
|
"slots": 3,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-rom2",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-10-04",
|
||||||
|
"city": "Rome",
|
||||||
|
"country": "it",
|
||||||
|
"coincidence": "ETHRome",
|
||||||
|
"lead": "PG",
|
||||||
|
"slots": 5,
|
||||||
|
"helpers": [
|
||||||
|
"Mykola",
|
||||||
|
"Alina"
|
||||||
|
],
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-rome1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3ps4",
|
||||||
|
"type": "summit",
|
||||||
|
"date": "2024-10-24",
|
||||||
|
"city": "Brno",
|
||||||
|
"country": "cz",
|
||||||
|
"coincidence": "ETHBrno",
|
||||||
|
"lead": "Tree",
|
||||||
|
"helpers": [
|
||||||
|
"PG",
|
||||||
|
"Mykola",
|
||||||
|
"Coinmandeer"
|
||||||
|
],
|
||||||
|
"slots": 16,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-summit-brno1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "w3pm-dc1",
|
||||||
|
"type": "meetup",
|
||||||
|
"date": "2024-11-20",
|
||||||
|
"city": "SE Asia",
|
||||||
|
"country": "xx",
|
||||||
|
"coincidence": "[Devcon](https://devcon.org/)",
|
||||||
|
"slots": 5,
|
||||||
|
"links": {
|
||||||
|
"rsvp": "https://lu.ma/w3pn-meetup-devcon7"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
283
src/events.json
283
src/events.json
|
@ -1,283 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"id": "w3ps1",
|
|
||||||
"type": "summit",
|
|
||||||
"date": "2023-06-05",
|
|
||||||
"city": "Prague",
|
|
||||||
"country": "cz",
|
|
||||||
"place": "[X10](https://www.divadlox10.cz/)",
|
|
||||||
"confirmed": true,
|
|
||||||
"coincidence": "[ETHPrague](https://ethprague.com/)",
|
|
||||||
"lead": "Tree",
|
|
||||||
"slots": 16,
|
|
||||||
"visitors": 180,
|
|
||||||
"links": {
|
|
||||||
"web": "https://prague.web3privacy.info/",
|
|
||||||
"git": "https://github.com/web3privacy/w3ps1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3ps2",
|
|
||||||
"type": "summit",
|
|
||||||
"date": "2023-10-05",
|
|
||||||
"city": "Rome",
|
|
||||||
"country": "it",
|
|
||||||
"place": "[Villaggio Globale](https://maps.app.goo.gl/S7kUruNvbpjgHuSh9)",
|
|
||||||
"confirmed": true,
|
|
||||||
"coincidence": "[ETHRome](https://ethrome.org/)",
|
|
||||||
"lead": "PG",
|
|
||||||
"slots": 10,
|
|
||||||
"visitors": 139,
|
|
||||||
"links": {
|
|
||||||
"web": "https://lu.ma/web3privacynow_rome"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-prg1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2023-11-14",
|
|
||||||
"city": "Prague",
|
|
||||||
"country": "cz",
|
|
||||||
"place": "[Dílna](https://kafevdilne.cz/)",
|
|
||||||
"confirmed": true,
|
|
||||||
"coincidence": "[DCxPrague](https://dcxprague.org/)",
|
|
||||||
"lead": "Tree",
|
|
||||||
"slots": 3,
|
|
||||||
"visitors": 15,
|
|
||||||
"links": {
|
|
||||||
"web": "https://lu.ma/w3pm-prg1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-ath1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/Q1",
|
|
||||||
"city": "Athens",
|
|
||||||
"country": "gr",
|
|
||||||
"coincidence": "",
|
|
||||||
"lead": "Mykola",
|
|
||||||
"optional": true,
|
|
||||||
"slots": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-lib1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/Mar",
|
|
||||||
"city": "Liberec",
|
|
||||||
"country": "cz",
|
|
||||||
"coincidence": "[ETHBohemia](https://ethbohemia.ethevents.club/)",
|
|
||||||
"lead": "Tree",
|
|
||||||
"optional": true,
|
|
||||||
"slots": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-buc1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-03-28",
|
|
||||||
"city": "Bucharest",
|
|
||||||
"country": "ro",
|
|
||||||
"coincidence": "[ETHBucharest](https://www.ethbucharest.xyz/)",
|
|
||||||
"optional": true,
|
|
||||||
"slots": 3,
|
|
||||||
"lead": "Tree",
|
|
||||||
"helpers": [
|
|
||||||
"Alina"
|
|
||||||
],
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-bucharest1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-ams1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-04-11",
|
|
||||||
"city": "Amsterdam",
|
|
||||||
"country": "nl",
|
|
||||||
"lead": "PG",
|
|
||||||
"helpers": [
|
|
||||||
"Mykola",
|
|
||||||
"Tree",
|
|
||||||
"Alina"
|
|
||||||
],
|
|
||||||
"coincidence": "[ETHDam](https://www.ethdam.com/)",
|
|
||||||
"slots": 3,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-ams1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-tal1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/Apr",
|
|
||||||
"city": "Tallinn",
|
|
||||||
"country": "ee",
|
|
||||||
"coincidence": "[ETHTallinn](https://www.ethtallinn.org/)",
|
|
||||||
"slots": 3,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-por1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/May",
|
|
||||||
"city": "Porto",
|
|
||||||
"country": "pt",
|
|
||||||
"coincidence": "[ETHPorto](https://ethporto.org/)",
|
|
||||||
"slots": 3,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-ber1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-05-22",
|
|
||||||
"city": "Berlin",
|
|
||||||
"country": "de",
|
|
||||||
"place": "[c-base](https://c-base.org/)",
|
|
||||||
"coincidence": "ETHBerlin",
|
|
||||||
"lead": "Tree",
|
|
||||||
"slots": 3,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-berlin1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3ps3",
|
|
||||||
"type": "summit",
|
|
||||||
"date": "2024-05-30",
|
|
||||||
"city": "Prague",
|
|
||||||
"country": "cz",
|
|
||||||
"coincidence": "ETHPrague",
|
|
||||||
"lead": "Tree",
|
|
||||||
"helpers": [
|
|
||||||
"PG",
|
|
||||||
"Mykola",
|
|
||||||
"Coinmandeer"
|
|
||||||
],
|
|
||||||
"slots": 16,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-summit-prague2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3ph1",
|
|
||||||
"type": "hackathon",
|
|
||||||
"date": "2024-06-19",
|
|
||||||
"days": 7,
|
|
||||||
"city": "Bled",
|
|
||||||
"country": "si",
|
|
||||||
"place": "[Subwork](https://subwork.xyz/)",
|
|
||||||
"confirmed": true,
|
|
||||||
"coincidence": "W3PN Hackathon",
|
|
||||||
"lead": "Tree",
|
|
||||||
"helpers": [
|
|
||||||
"PG",
|
|
||||||
"Mykola",
|
|
||||||
"Coinmandeer"
|
|
||||||
],
|
|
||||||
"slots": 10,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-bled-hackathon1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-lju1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-06-21",
|
|
||||||
"city": "Ljubljana",
|
|
||||||
"country": "si",
|
|
||||||
"coincidence": "W3PN Hackathon",
|
|
||||||
"lead": "Tree",
|
|
||||||
"helpers": [
|
|
||||||
"PG",
|
|
||||||
"Mykola",
|
|
||||||
"Coinmandeer"
|
|
||||||
],
|
|
||||||
"slots": 5,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-ljubljana1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-bcn2",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/Jul",
|
|
||||||
"city": "Barcelona",
|
|
||||||
"country": "es",
|
|
||||||
"coincidence": "ETHBarcelona",
|
|
||||||
"slots": 3,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-bru1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-07-12",
|
|
||||||
"city": "Brussels",
|
|
||||||
"country": "be",
|
|
||||||
"coincidence": "[EthCC](https://www.ethcc.io/)",
|
|
||||||
"slots": 3,
|
|
||||||
"lead": "Mykola",
|
|
||||||
"helpers": [
|
|
||||||
"Tree"
|
|
||||||
],
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-bru1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-waw1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024/Sep",
|
|
||||||
"city": "Warsaw",
|
|
||||||
"country": "pl",
|
|
||||||
"coincidence": "ETHWarsaw",
|
|
||||||
"lead": "Tree",
|
|
||||||
"slots": 3,
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-rom2",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-10-04",
|
|
||||||
"city": "Rome",
|
|
||||||
"country": "it",
|
|
||||||
"coincidence": "ETHRome",
|
|
||||||
"lead": "PG",
|
|
||||||
"slots": 5,
|
|
||||||
"helpers": [
|
|
||||||
"Mykola",
|
|
||||||
"Alina"
|
|
||||||
],
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-rome1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3ps4",
|
|
||||||
"type": "summit",
|
|
||||||
"date": "2024-10-24",
|
|
||||||
"city": "Brno",
|
|
||||||
"country": "cz",
|
|
||||||
"coincidence": "ETHBrno",
|
|
||||||
"lead": "Tree",
|
|
||||||
"helpers": [
|
|
||||||
"PG",
|
|
||||||
"Mykola",
|
|
||||||
"Coinmandeer"
|
|
||||||
],
|
|
||||||
"slots": 16,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-summit-brno1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "w3pm-dc1",
|
|
||||||
"type": "meetup",
|
|
||||||
"date": "2024-11-20",
|
|
||||||
"city": "SE Asia",
|
|
||||||
"country": "xx",
|
|
||||||
"coincidence": "[Devcon](https://devcon.org/)",
|
|
||||||
"slots": 5,
|
|
||||||
"links": {
|
|
||||||
"rsvp": "https://lu.ma/w3pn-meetup-devcon7"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
import * as config from '../config.yaml';
|
import * as config from '../config.yaml';
|
||||||
|
import core from '../core.json';
|
||||||
import '../styles/base.css';
|
import '../styles/base.css';
|
||||||
const {banner, title, description} = Astro.props;
|
const {banner, title, description} = Astro.props;
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ import cfonts from 'cfonts';
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
{config.header.menu.map((menuItem) => (
|
{config.header.menu.map((menuItem) => (
|
||||||
<div class="uppercase w-full">
|
<div class="uppercase w-full">
|
||||||
<a href={menuItem.url || config.links} class="inline-block hover:underline px-4 py-2" class:list={[menuItem.url?.match(/^http/) ? "external" : "", Astro.url.pathname === menuItem.url ? "text-white" : ""]}>{menuItem.name}</a>
|
<a href={menuItem.url || core.links} class="inline-block hover:underline px-4 py-2" class:list={[menuItem.url?.match(/^http/) ? "external" : "", Astro.url.pathname === menuItem.url ? "text-white" : ""]}>{menuItem.name}</a>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,7 +58,7 @@ import cfonts from 'cfonts';
|
||||||
<div class="hidden lg:flex grow gap-0 xl:gap-2 justify-center">
|
<div class="hidden lg:flex grow gap-0 xl:gap-2 justify-center">
|
||||||
{config.header.menu.map((menuItem) => (
|
{config.header.menu.map((menuItem) => (
|
||||||
<div class="uppercase hover:text-[#c2c2c2]" class:list={[menuItem.link ? "xexternal" : "", Astro.url.pathname === menuItem.url ? "text-white" : ""]}>
|
<div class="uppercase hover:text-[#c2c2c2]" class:list={[menuItem.link ? "xexternal" : "", Astro.url.pathname === menuItem.url ? "text-white" : ""]}>
|
||||||
<a href={config.links[menuItem.link] || menuItem.url} class="inline-block hover:underline px-4 py-2">
|
<a href={core.links[menuItem.link] || menuItem.url} class="inline-block hover:underline px-4 py-2">
|
||||||
{menuItem.name}
|
{menuItem.name}
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
|
@ -66,7 +67,7 @@ import cfonts from 'cfonts';
|
||||||
</div>
|
</div>
|
||||||
<div class="flex grow lg:grow-0 gap-3 lg:gap-6 justify-end pt-1 lg:pt-2.5">
|
<div class="flex grow lg:grow-0 gap-3 lg:gap-6 justify-end pt-1 lg:pt-2.5">
|
||||||
{config.header.rightMenu.map((key) => (
|
{config.header.rightMenu.map((key) => (
|
||||||
<a href={config.links[key]} class="block icon xsmall sm:small opacity-50 hover:opacity-100" class:list={[key]} target="_blank"></a>
|
<a href={core.links[key]} class="block icon xsmall sm:small opacity-50 hover:opacity-100" class:list={[key]} target="_blank"></a>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
|
@ -104,7 +105,7 @@ import cfonts from 'cfonts';
|
||||||
{config.footer.menu.map((item) => (
|
{config.footer.menu.map((item) => (
|
||||||
<div class="flex gap-4 items-center menuItem lg:mb-0 mb-2">
|
<div class="flex gap-4 items-center menuItem lg:mb-0 mb-2">
|
||||||
<div class="icon small opacity-50" class:list={[item.ico]}></div>
|
<div class="icon small opacity-50" class:list={[item.ico]}></div>
|
||||||
<div class="text-white hover:underline"><a href={item.url || config.links[item.link]}>{item.title}</a></div>
|
<div class="text-white hover:underline"><a href={item.url || core.links[item.link]}>{item.title}</a></div>
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
import BaseLayout from '../layouts/base.astro';
|
import BaseLayout from '../layouts/base.astro';
|
||||||
import * as config from '../config.yaml';
|
import * as config from '../config.yaml';
|
||||||
|
import core from '../core.json';
|
||||||
import AboutFooter from '../components/AboutFooter.astro';
|
import AboutFooter from '../components/AboutFooter.astro';
|
||||||
|
|
||||||
---
|
---
|
||||||
|
@ -14,7 +15,7 @@ import AboutFooter from '../components/AboutFooter.astro';
|
||||||
<h1>Our mission</h1>
|
<h1>Our mission</h1>
|
||||||
<div set:html={config.landing.mission}></div>
|
<div set:html={config.landing.mission}></div>
|
||||||
<div class="mt-8">
|
<div class="mt-8">
|
||||||
<a class="button inverted" href={config.links.manifesto}><button>Read manifesto</button></a>
|
<a class="button inverted" href={core.links.manifesto}><button>Read manifesto</button></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
---
|
---
|
||||||
|
|
||||||
import BaseLayout from '../layouts/base.astro';
|
import BaseLayout from '../layouts/base.astro';
|
||||||
import events from '../events.json';
|
import core from '../core.json';
|
||||||
import EventItem from '../components/EventItem.astro';
|
import EventItem from '../components/EventItem.astro';
|
||||||
import { isFuture } from 'date-fns';
|
import { isFuture } from 'date-fns';
|
||||||
|
|
||||||
|
const events = core.events;
|
||||||
|
|
||||||
function eventsFilter (year, future=true) {
|
function eventsFilter (year, future=true) {
|
||||||
return function (x) {
|
return function (x) {
|
||||||
if (!x.date.match(new RegExp(`^${year}`))) {
|
if (!x.date.match(new RegExp(`^${year}`))) {
|
||||||
|
|
|
@ -3,13 +3,15 @@
|
||||||
import BaseLayout from '../layouts/base.astro';
|
import BaseLayout from '../layouts/base.astro';
|
||||||
import AboutFooter from '../components/AboutFooter.astro';
|
import AboutFooter from '../components/AboutFooter.astro';
|
||||||
import * as config from '../config.yaml';
|
import * as config from '../config.yaml';
|
||||||
import events from '../events.json';
|
import core from '../core.json';
|
||||||
import articles from '../articles.json';
|
import articles from '../articles.json';
|
||||||
import talks from '../talks.json';
|
import talks from '../talks.json';
|
||||||
import explorer from '../explorer.json';
|
import explorer from '../explorer.json';
|
||||||
import { isRenderTemplateResult } from 'astro/runtime/server/render/astro/render-template.js';
|
import { isRenderTemplateResult } from 'astro/runtime/server/render/astro/render-template.js';
|
||||||
import { isPast, format } from 'date-fns';
|
import { isPast, format } from 'date-fns';
|
||||||
|
|
||||||
|
const events = core.events;
|
||||||
|
|
||||||
let eventsPast = 0
|
let eventsPast = 0
|
||||||
let eventsUpcoming = 0
|
let eventsUpcoming = 0
|
||||||
for (const ev of events) {
|
for (const ev of events) {
|
||||||
|
@ -44,14 +46,6 @@ for (const ev of events) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bg-talks" data-url="/research">
|
|
||||||
<div class="title">Research</div>
|
|
||||||
<div class="numbers">
|
|
||||||
<div>
|
|
||||||
<div class="big">3 reserch projects →</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="bg-projects" data-url="https://explorer.web3privacy.info">
|
<div class="bg-projects" data-url="https://explorer.web3privacy.info">
|
||||||
<div class="title">Explorer</div>
|
<div class="title">Explorer</div>
|
||||||
<div class="numbers">
|
<div class="numbers">
|
||||||
|
@ -65,6 +59,14 @@ for (const ev of events) {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bg-talks" data-url="/research">
|
||||||
|
<div class="title">Research</div>
|
||||||
|
<div class="numbers">
|
||||||
|
<div>
|
||||||
|
<div class="big">{core.projects.filter(x => x.type && x.type === "research").length} research projects →</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
4
utils/core.js
Normal file
4
utils/core.js
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
const response = await fetch("https://data.web3privacy.info/")
|
||||||
|
const data = await response.json()
|
||||||
|
await Deno.writeTextFile("./src/core.json", JSON.stringify(data, null, 2))
|
||||||
|
console.log(`File ./src/core.json saved`)
|
|
@ -1,6 +0,0 @@
|
||||||
import YAML from 'npm:yaml'
|
|
||||||
|
|
||||||
const response = await fetch("https://data.web3privacy.info/")
|
|
||||||
const data = await response.json()
|
|
||||||
await Deno.writeTextFile("./src/events.json", JSON.stringify(data.events, null, 2))
|
|
||||||
console.log(`File ./src/events.json saved`)
|
|
Loading…
Reference in a new issue