This commit is contained in:
tree🌴 2024-01-25 18:44:10 +01:00
parent c2fe9c03b6
commit 7c56a55f18
10 changed files with 182 additions and 80 deletions

View file

@ -11,7 +11,8 @@
"contribs": "deno run --allow-all utils/contributors.js", "contribs": "deno run --allow-all utils/contributors.js",
"events": "deno run --allow-all utils/events.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"
}, },
"dependencies": { "dependencies": {
"@astrojs/tailwind": "^5.0.2", "@astrojs/tailwind": "^5.0.2",

View file

@ -1,4 +1,46 @@
[ [
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/wyFhJ9_ayxA6BXTW0WE1h4ZackVTjrZTeC28Y6-J4mc",
"title": "#2023privacyproof finalists announced",
"img": "https://images.mirror-media.xyz/publication-images/eE7KbYRyYk_PtvoXrL3U9.png?height=807&width=1614",
"date": "2024-01-24T10:44:31.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/Yx-Hc2kw2sDVixLkKQ5F1ZDN33eKGYYkK4fjVdPouIE",
"title": "Doxxer of the year #2023privacyproof",
"img": "https://images.mirror-media.xyz/publication-images/P8rXYNblxjnz4Fx-8ZNCt.png?height=960&width=1920",
"date": "2024-01-21T10:07:43.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/pbTUSd5RerKKwmeqWmzl5VDmtuykkalqFUBTy0EQUNA",
"title": "Exciting innovation in privacy #2023privacyproof",
"img": "https://images.mirror-media.xyz/publication-images/KQ9cWrl5Rnt0b6hzUIYWI.png?height=708&width=1416",
"date": "2024-01-19T12:09:54.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/sy5SdjIHlu-6FMbF6bos_NNWveHSc-_RstKfdIdbfJQ",
"title": "Major news & events in 23' privacy #2023privacyproof",
"img": "https://images.mirror-media.xyz/publication-images/k8odR-jfo46rubX-NjyZT.png?height=562&width=1124",
"date": "2024-01-18T10:40:18.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/LdOt0mlG_nXqhnmLf7s-X13NDNdpwQw72ESKaJq-0zA",
"title": "Pro-privacy projects of the year #2023privacyproof",
"img": "https://images.mirror-media.xyz/publication-images/jQsVNxD62gEPQaeZ1wGjH.png?height=645&width=1290",
"date": "2024-01-17T09:08:02.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/hEDewxQxukOHZcTqoXNdkrmioEiBb2SrObDZ9oanVM4",
"title": "Annual Privacy Tech Poll: longlist update",
"img": "https://images.mirror-media.xyz/publication-images/djpD_fOh0MOh9DO3jK5BF.png?height=758&width=1516",
"date": "2024-01-06T13:33:59.000Z"
},
{
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/g9ypqVmAIllC3q1qy1EmNfaKR4RemDBYlMLDNbnooEk",
"title": "#2023privacyproof longlist selection announced",
"img": "https://images.mirror-media.xyz/publication-images/tz5P_ewwh35vtjXS1toTh.png?height=580&width=1160",
"date": "2023-12-29T11:45:08.000Z"
},
{ {
"url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/u-K59tVbfnFB9M-TTSpTIf7ef3zlsg9FXklDCRwAr70", "url": "https://mirror.xyz/0x0f1F3DAf416B74DB3DE55Eb4D7513a80F4841073/u-K59tVbfnFB9M-TTSpTIf7ef3zlsg9FXklDCRwAr70",
"title": "Annual Privacy Tech Poll - #2023privacyproof", "title": "Annual Privacy Tech Poll - #2023privacyproof",

View file

@ -10,6 +10,7 @@ links:
youtube: https://youtube.com/@Web3PrivacyNow/ youtube: https://youtube.com/@Web3PrivacyNow/
forum: https://forum.web3privacy.info forum: https://forum.web3privacy.info
explorer: https://explorer.web3privacy.info explorer: https://explorer.web3privacy.info
telegram: https://t.me/web3privacynow
header: header:
menu: menu:
- name: Home - name: Home

View file

@ -18,7 +18,7 @@
"received_events_url": "https://api.github.com/users/Msiusko/received_events", "received_events_url": "https://api.github.com/users/Msiusko/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 1132 "contributions": 1168
}, },
{ {
"login": "burningtree", "login": "burningtree",
@ -39,7 +39,7 @@
"received_events_url": "https://api.github.com/users/burningtree/received_events", "received_events_url": "https://api.github.com/users/burningtree/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 278 "contributions": 280
}, },
{ {
"login": "cryptomar1o", "login": "cryptomar1o",
@ -123,7 +123,7 @@
"received_events_url": "https://api.github.com/users/niclaz/received_events", "received_events_url": "https://api.github.com/users/niclaz/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 8 "contributions": 9
}, },
{ {
"login": "sripwoud", "login": "sripwoud",
@ -146,6 +146,27 @@
"site_admin": false, "site_admin": false,
"contributions": 6 "contributions": 6
}, },
{
"login": "coinmandeer",
"id": 62942796,
"node_id": "MDQ6VXNlcjYyOTQyNzk2",
"avatar_url": "https://avatars.githubusercontent.com/u/62942796?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/coinmandeer",
"html_url": "https://github.com/coinmandeer",
"followers_url": "https://api.github.com/users/coinmandeer/followers",
"following_url": "https://api.github.com/users/coinmandeer/following{/other_user}",
"gists_url": "https://api.github.com/users/coinmandeer/gists{/gist_id}",
"starred_url": "https://api.github.com/users/coinmandeer/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/coinmandeer/subscriptions",
"organizations_url": "https://api.github.com/users/coinmandeer/orgs",
"repos_url": "https://api.github.com/users/coinmandeer/repos",
"events_url": "https://api.github.com/users/coinmandeer/events{/privacy}",
"received_events_url": "https://api.github.com/users/coinmandeer/received_events",
"type": "User",
"site_admin": false,
"contributions": 5
},
{ {
"login": "Ressac-No1", "login": "Ressac-No1",
"id": 119933943, "id": 119933943,
@ -167,6 +188,27 @@
"site_admin": false, "site_admin": false,
"contributions": 4 "contributions": 4
}, },
{
"login": "Diex5",
"id": 71428580,
"node_id": "MDQ6VXNlcjcxNDI4NTgw",
"avatar_url": "https://avatars.githubusercontent.com/u/71428580?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/Diex5",
"html_url": "https://github.com/Diex5",
"followers_url": "https://api.github.com/users/Diex5/followers",
"following_url": "https://api.github.com/users/Diex5/following{/other_user}",
"gists_url": "https://api.github.com/users/Diex5/gists{/gist_id}",
"starred_url": "https://api.github.com/users/Diex5/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/Diex5/subscriptions",
"organizations_url": "https://api.github.com/users/Diex5/orgs",
"repos_url": "https://api.github.com/users/Diex5/repos",
"events_url": "https://api.github.com/users/Diex5/events{/privacy}",
"received_events_url": "https://api.github.com/users/Diex5/received_events",
"type": "User",
"site_admin": false,
"contributions": 3
},
{ {
"login": "wslyvh", "login": "wslyvh",
"id": 25974464, "id": 25974464,
@ -207,6 +249,27 @@
"received_events_url": "https://api.github.com/users/ligi/received_events", "received_events_url": "https://api.github.com/users/ligi/received_events",
"type": "User", "type": "User",
"site_admin": false, "site_admin": false,
"contributions": 3
},
{
"login": "MufCZ",
"id": 90514921,
"node_id": "MDQ6VXNlcjkwNTE0OTIx",
"avatar_url": "https://avatars.githubusercontent.com/u/90514921?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/MufCZ",
"html_url": "https://github.com/MufCZ",
"followers_url": "https://api.github.com/users/MufCZ/followers",
"following_url": "https://api.github.com/users/MufCZ/following{/other_user}",
"gists_url": "https://api.github.com/users/MufCZ/gists{/gist_id}",
"starred_url": "https://api.github.com/users/MufCZ/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/MufCZ/subscriptions",
"organizations_url": "https://api.github.com/users/MufCZ/orgs",
"repos_url": "https://api.github.com/users/MufCZ/repos",
"events_url": "https://api.github.com/users/MufCZ/events{/privacy}",
"received_events_url": "https://api.github.com/users/MufCZ/received_events",
"type": "User",
"site_admin": false,
"contributions": 2 "contributions": 2
}, },
{ {
@ -356,27 +419,6 @@
"site_admin": false, "site_admin": false,
"contributions": 1 "contributions": 1
}, },
{
"login": "coinmandeer",
"id": 62942796,
"node_id": "MDQ6VXNlcjYyOTQyNzk2",
"avatar_url": "https://avatars.githubusercontent.com/u/62942796?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/coinmandeer",
"html_url": "https://github.com/coinmandeer",
"followers_url": "https://api.github.com/users/coinmandeer/followers",
"following_url": "https://api.github.com/users/coinmandeer/following{/other_user}",
"gists_url": "https://api.github.com/users/coinmandeer/gists{/gist_id}",
"starred_url": "https://api.github.com/users/coinmandeer/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/coinmandeer/subscriptions",
"organizations_url": "https://api.github.com/users/coinmandeer/orgs",
"repos_url": "https://api.github.com/users/coinmandeer/repos",
"events_url": "https://api.github.com/users/coinmandeer/events{/privacy}",
"received_events_url": "https://api.github.com/users/coinmandeer/received_events",
"type": "User",
"site_admin": false,
"contributions": 1
},
{ {
"login": "themandalore", "login": "themandalore",
"id": 18077596, "id": 18077596,

View file

@ -49,27 +49,13 @@
} }
}, },
{ {
"id": "w3pm-bcn1", "id": "w3pm-ath1",
"type": "meetup", "type": "meetup",
"date": "2024/Q1", "date": "2024/Q1",
"city": "Barcelona", "city": "Athens",
"country": "es", "country": "gr",
"coincidence": "", "coincidence": "",
"lead": "Tree", "lead": "Mykola",
"helpers": [
"Mykola"
],
"optional": true,
"slots": 3
},
{
"id": "w3pm-itxx",
"type": "meetup",
"date": "2024/Q1",
"city": "Italy (TBD)",
"country": "it",
"coincidence": "",
"lead": "PG",
"optional": true, "optional": true,
"slots": 3 "slots": 3
}, },
@ -142,9 +128,10 @@
{ {
"id": "w3pm-ber1", "id": "w3pm-ber1",
"type": "meetup", "type": "meetup",
"date": "2024-05-25", "date": "2024-05-22",
"city": "Berlin", "city": "Berlin",
"country": "de", "country": "de",
"place": "[c-base](https://c-base.org/)",
"coincidence": "ETHBerlin", "coincidence": "ETHBerlin",
"lead": "Tree", "lead": "Tree",
"slots": 3, "slots": 3,

3
src/explorer.json Normal file
View file

@ -0,0 +1,3 @@
{
"projects": 429
}

View file

@ -1,7 +1,7 @@
--- ---
import * as config from '../config.yaml'; import * as config from '../config.yaml';
import '../styles/base.css'; import '../styles/base.css';
const {banner, title} = Astro.props; const {banner, title, description} = Astro.props;
import cfonts from 'cfonts'; import cfonts from 'cfonts';
@ -12,6 +12,7 @@ import cfonts from 'cfonts';
<link rel="icon" type="image/x-icon" href="/favicon.ico"> <link rel="icon" type="image/x-icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width" /> <meta name="viewport" content="width=device-width" />
<meta name="generator" content={Astro.generator} /> <meta name="generator" content={Astro.generator} />
<meta name="description" content={description} />
<title>{title ? title + ' | ' + config.title : config.title}</title> <title>{title ? title + ' | ' + config.title : config.title}</title>
<link <link
rel="preload" rel="preload"
@ -40,7 +41,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" : ""]}>2@@@{menuItem.name}</a> <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>
</div> </div>
))} ))}
</div> </div>
@ -77,7 +78,7 @@ import cfonts from 'cfonts';
{config.hero.text} {config.hero.text}
</div> </div>
<div class="mt-6"> <div class="mt-6">
<a class="button" href={config.links.docs}><button>About Web3Privacy Now</button></a> <a class="button" href="/about"><button>About Web3Privacy Now</button></a>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,6 +6,7 @@ import * as config from '../config.yaml';
import events from '../events.json'; import events from '../events.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 { 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';
@ -26,7 +27,7 @@ for (const ev of events) {
--- ---
<BaseLayout title="Home Page" banner="true"> <BaseLayout banner="true" description="Privacy advocates worldwide are coming together to discuss how to mainstream privacy within the Web3 industry. So it will become a cultural phenomenon embodying both decentralisation & anti-surveillance capitalism practices.">
<div class="middle-pane-big"> <div class="middle-pane-big">
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 w3pn-hp-grid gap-2 mt-2"> <div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 w3pn-hp-grid gap-2 mt-2">
@ -43,31 +44,20 @@ for (const ev of events) {
</div> </div>
</div> </div>
</div> </div>
<div class="bg-talks" data-url="/talks"> <div class="bg-talks" data-url="/research">
<div class="title">Talks</div> <div class="title">Research</div>
<div class="numbers"> <div class="numbers">
<div> <div>
<div class="big">?</div> <div class="semibig">3 reserch projects →</div>
<div>Talks</div>
</div>
<div>
<div class="big">?</div>
<div>Recordings</div>
</div>
<div>
<div class="big">?</div>
<div>Speakers</div>
</div> </div>
</div> </div>
</div> </div>
<div class="bg-projects" data-url="/projects"> <div class="bg-projects" data-url="https://explorer.web3privacy.info">
<div class="title">Projects</div> <div class="title">Explorer</div>
<div class="numbers"> <div class="numbers">
<div> <div>
<div class="semibig">Privacy explorer →</div> <div class="big">{explorer.projects}</div>
</div> <div>Projects</div>
<div>
<div class="semibig">3 reserch projects →</div>
</div> </div>
</div> </div>
</div> </div>
@ -76,25 +66,13 @@ for (const ev of events) {
<div class="middle-pane-medium mt-10"> <div class="middle-pane-medium mt-10">
<div class="mt-10"> <!--div class="mt-10">
<h1>Our Projects</h1> <h1>Our Projects</h1>
</div> </div>
<div class="mt-16"> <div class="mt-16">
<h1>Featured Events</h1> <h1>Featured Events</h1>
</div> </div-->
<div class="mt-16">
<h1>Latest Talks</h1>
</div>
<div class="grid md:grid-cols-2 gap-6">
{talks.slice(0,4).map((entry) => (
<div class="basegrid-entry aspect-video" style={{backgroundImage: `url("${entry.img}")`, backgroundSize: 'cover', backgroundPosition: 'center'}}>
<a href={entry.url} class="w-full h-full" title={entry.title}></a>
</div>
))}
</div>
<div class="mt-16"> <div class="mt-16">
<h1>Latest Articles</h1> <h1>Latest Articles</h1>
@ -111,6 +89,18 @@ for (const ev of events) {
))} ))}
</div> </div>
<div class="mt-16">
<h1>Latest Talks</h1>
</div>
<div class="grid md:grid-cols-2 gap-6">
{talks.slice(0,4).map((entry) => (
<div class="basegrid-entry aspect-video" style={{backgroundImage: `url("${entry.img}")`, backgroundSize: 'cover', backgroundPosition: 'center'}}>
<a href={entry.url} class="w-full h-full" title={entry.title}></a>
</div>
))}
</div>
<AboutFooter /> <AboutFooter />
</div> </div>
<script> <script>

24
src/pages/talks.astro Normal file
View file

@ -0,0 +1,24 @@
---
import BaseLayout from '../layouts/base.astro';
import talks from '../talks.json';
---
<BaseLayout title="Talks">
<div class="middle-pane-medium mt-10">
<div class="mt-16">
<h1>Talks ({talks.length})</h1>
</div>
<div class="grid md:grid-cols-2 xl:grid-cols-3 gap-6">
{talks.map((entry) => (
<div class="basegrid-entry aspect-video" style={{backgroundImage: `url("${entry.img}")`, backgroundSize: 'cover', backgroundPosition: 'center'}}>
<a href={entry.url} class="w-full h-full" title={entry.title}></a>
</div>
))}
</div>
</div>
</BaseLayout>

11
utils/explorer.js Normal file
View file

@ -0,0 +1,11 @@
const resp = await fetch("https://explorer-data.web3privacy.info/");
const data = await resp.json();
const explorer = {
projects: data.projects.length
}
await Deno.writeTextFile("./src/explorer.json", JSON.stringify(explorer, null, 2))
console.log(`File ./src/explorer.json saved`)