Merge branch 'main' of github.com:life-itself/web3
This commit is contained in:
commit
49a1d03a7d
|
|
@ -5,16 +5,7 @@ created: 2022-04-03
|
|||
description: "In this episode of our Making Sense of crypto and web3 series, Stephen Diehl is joined by economist and data scientist, Matthew Ranger, in a discussion on crypto assets from the perspective of an economist."
|
||||
image: /img/a-macro-economics-thumbnail.png
|
||||
youtube: https://youtu.be/bLRsmn1Tsn8
|
||||
podcast: https://anchor.fm/life-itself/episodes/A-Macroeconomics-Perspective-on-Cryptocurrencies-e1hv8b4
|
||||
featured: true
|
||||
aliases: notes/a-macroeconomics-perspective-on-cryptocurrencies.md
|
||||
---
|
||||
|
||||
---
|
||||
title: A Macroeconomics Perspective on Cryptocurrencies
|
||||
date: 2022-05-03
|
||||
created: 2022-04-03
|
||||
description: "In this episode of our Making Sense of crypto and web3 series, Stephen Diehl is joined by economist and data scientist, Matthew Ranger, in a discussion on crypto assets from the perspective of an economist."
|
||||
youtube: https://youtu.be/bLRsmn1Tsn8
|
||||
podcast: https://anchor.fm/life-itself/episodes/A-Macroeconomics-Perspective-on-Cryptocurrencies-e1hv8b4
|
||||
aliases: notes/a-macroeconomics-perspective-on-cryptocurrencies.md
|
||||
---
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ title: Are Crypto Tokens Securities?
|
|||
date: 2022-02-17
|
||||
created: 2022-04-13
|
||||
description: "In episode #3 of our ongoing deep dive into web3 and crypto, we explore the nature of financial products known as 'securities', their relation to crypto tokens, and the regulatory framework that exists around these structures."
|
||||
image: /img/are-crypto-tokens -securities-thumbnail.jpg
|
||||
youtube: https://www.youtube.com/embed/z2uAg-AIs-Y
|
||||
podcast: https://anchor.fm/life-itself/episodes/Are-Cryptocurrencies-Securities--The-Nature-of-Securities--Their-Relation-to-Crypto-Tokens-with-Stephen-Diehl-e1fph69
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/are-crypto-tokens-securities.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ created: 2022-05-02
|
|||
description: "Episode #7 of our ongoing deep dive into web3 and crypto with Rufus Pollock and Stephen Diehl. This week we’re exploring the thesis that Bitcoin (and crypto more generally) is an anti-authoritarian force and can help undermine tyranny."
|
||||
image: /img/anti-auth-thumbnail.png
|
||||
youtube: https://youtu.be/U_-Bdx1mqS8
|
||||
podcast: https://anchor.fm/life-itself/episodes/Bitcoin-as-an-Anti-Authoritarian-Force-e1i25vg/a-a7gpq18
|
||||
featured: true
|
||||
aliases: notes/bitcoin-as-anti-authoritarian.md
|
||||
---
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: 'In this episode we use the example of KlimaDAO to explore the inte
|
|||
image: /img/Collective Action Climate.jpg
|
||||
youtube: https://www.youtube.com/watch?v=SLXtnCL6IxE
|
||||
podcast: https://anchor.fm/life-itself/episodes/Collective-Action-Problems--Climate-Change-e1h4o6e/a-a7gpq18
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/collective-action-problems-and-climate-change.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ title: Cory Doctorow on Blockchain, Crypto & Web3
|
|||
date: 2022-04-26
|
||||
created: 2022-04-26
|
||||
description: "In this episode of our Making Sense of Crypto and Web3 series, Rufus Pollock is joined by activist, journalist and author Cory Doctorow. Cory outlines the problems he sees within the web3 space; economic, technological, and ethical."
|
||||
image: /img/cory-doctorow-on-blockchain-thumbnail.jpg
|
||||
youtube: https://youtu.be/1eUMD5MoQdo
|
||||
podcast: https://anchor.fm/life-itself/episodes/Cory-Doctorow-on-Blockchain--Crypto--Web3-e1hmcfk/a-a7gpq18
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/cory-doctorow-on-blockchain.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ title: Fintech Incrementalism and Responsible Innovation
|
|||
created: 2022-04-04
|
||||
date: 2022-04-04
|
||||
description: "In episode #5 of our ongoing deep dive into web3 and crypto, Rufus Pollock and Stephen Diehl explore the claim that blockchain can be a vehicle for increase in financialization through the development of more complex, blockchain-based financial products."
|
||||
image: /img/fintech-incrementalism-thumbnail.jpg
|
||||
youtube: https://www.youtube.com/watch?v=7rLQoTtwRSU&t=4s
|
||||
podcast: https://anchor.fm/life-itself/episodes/Fintech-Incrementalism-and-Responsible-Innovation-e1gn02u
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/fintech-incrementalism-and-responsible-innovation.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ created: 2022-05-18
|
|||
description: "In a previous episode, Collective Action Problems & Climate Change, Steven Diehl and Rufus Pollock discussed the utility of web3 in tackling collective action problems and climate change, using KlimaDAO as a case study. In a follow up to this conversation, Rufus and Theo from Life Itself Labs sat down with Marcus Aurelius and 0xy moron, two core members of KlimaDAO, to discuss the KlimaDAO model, its inspirations and its aims."
|
||||
image: /img/klima-one-thumbnail.png
|
||||
youtube: https://youtu.be/fHHxQAQW0co
|
||||
podcast: https://anchor.fm/life-itself/episodes/KlimaDAO--Life-Itself-In-Conversation-Part-One-e1ilbra/a-a7gpq18
|
||||
featured: true
|
||||
aliases: notes/in-conversation-with-klimadao-part-one.md
|
||||
---
|
||||
|
|
|
|||
|
|
@ -2,9 +2,10 @@
|
|||
title: Market Fundamentalism
|
||||
date: 2022-03-04
|
||||
description: "In episode #2 of the series, Rufus Pollock and Stephen Diehl explore a common incentive for investing in crypto: the belief - held by day traders and quantitative hedge funds alike - that crypto can make those who trade it a lot of money. Particular focus in this episode is placed on the 'market fundamentalist' position."
|
||||
image: /img/Market_Fundamentalism_Thumbnail_nn19qa.png
|
||||
youtube: https://www.youtube.com/watch?v=K5JtPTyc0y0
|
||||
podcast: https://anchor.fm/life-itself/episodes/Crypto--Traders-and-Unfettered-Financial-Markets-with-Stephen-Diehl-e1fgm2d
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/market-fundamentalism.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,10 @@ image: /img/Neo-metallism_Thumb_vo3dhs.png
|
|||
description: "In this episode we examine Bitcoin and the Neo-Metallist thesis, i.e. that a gold-standard was a good idea and a Bitcoin-standard would be even better."
|
||||
youtube: https://www.youtube.com/embed/_o7pRFLzJHY
|
||||
podcast: https://anchor.fm/life-itself/episodes/Stephen-Diehl-on-Web3--Bitcoin--Neometalism-e1f5rca
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/neo-metallism.md
|
||||
---
|
||||
|
||||
{/* https://www.youtube.com/watch?v=_o7pRFLzJHY&t=568s */}
|
||||
|
||||
{/* Podcast: https://anchor.fm/life-itself/episodes/Stephen-Diehl-on-Web3--Bitcoin--Neometalism-e1f5rca */}
|
||||
* Wiki topic: [is-digital-gold](../claims/is-digital-gold.md)
|
||||
|
||||
***
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ title: On the Potential of DAOs & Web3 with Jordan Hall & Rufus Pollock
|
|||
date: 2022-03-01
|
||||
created: 2022-03-01
|
||||
description: "In this episode with Jordan Hall we discuss the potential of DAOs for social change."
|
||||
image: /img/Potential_of_DAOs_Thumb_ko4vpa.png
|
||||
youtube: https://youtu.be/aQvpgYW0o7M
|
||||
podcast: https://anchor.fm/life-itself/episodes/Jordan-Hall-on-the-Potential-of-DAOs-e1f5rm9/a-a7gpq18
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/on-the-potential-of-DAOs-and-Web3.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@ date: 2022-04-08
|
|||
description: 'In this episode with Pia Mancini about her work to make community finance transparent and sustainable with Open Collective, her commitment ot steward ownership and the value of an exit to community.'
|
||||
image: /img/Pia Mancini Thumbnail.jpg
|
||||
youtube: https://www.youtube.com/watch?v=C2KYJiQVtIM
|
||||
featured: false
|
||||
podcast: https://anchor.fm/life-itself/episodes/Open-Collective--Steward-Ownership--Exit-to-Community-with-Pia-Mancini-e1hkltv/a-a7gpq18
|
||||
featured: true
|
||||
aliases: notes/pia-mancini-open-collective-dialogue.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ description: "In this episode we explore the aspirational transition from the ex
|
|||
image: /img/post-state-technocracy.jpg
|
||||
youtube: https://www.youtube.com/watch?v=gZ0iCJkM3PU
|
||||
podcast: https://anchor.fm/life-itself/episodes/On-Web3-and-Post-State-Technocracy-with-Stephen-Diehl--Rufus-Pollock-e1g4cpe
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/post-state-technocracy.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@ title: Richard D. Bartlett, Stephen Reid & Rufus Pollock on Critical Exploration
|
|||
date: 2022-01-26
|
||||
created: 2022-01-26
|
||||
description: "Just what is Web3, why are people so excited about it, and how likely is it to really change the world? In this episode, Life Itself co-founder Rufus Pollock talks with Rich Bartlett and Stephen Reid on the promises, possibilities and pitfalls of Web3."
|
||||
image: /img/richard-bartlett-and-stephen-reid-thumbnail.jpg
|
||||
youtube: https://youtu.be/bBP5cKAbAug
|
||||
podcast: https://anchor.fm/life-itself/episodes/Richard-D--Bartlett--Stephen-Reid-on-Critical-Exploration-of-Web3-e1f5q1f/a-a7gpq18
|
||||
featured: false
|
||||
featured: true
|
||||
aliases: notes/richard-bartlett-and-stephen-reid.md
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,6 @@
|
|||
import Link from "next/link"
|
||||
import { YOUTUBE_REGEX } from "../../lib/constants"
|
||||
|
||||
export function Latest({ posts }) {
|
||||
return (
|
||||
<div className="relative pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
|
||||
|
|
@ -11,35 +14,34 @@ export function Latest({ posts }) {
|
|||
Our latest articles and explorations.
|
||||
</p>
|
||||
</div>
|
||||
<div className="mt-12 max-w-lg mx-auto grid gap-5 lg:grid-cols-3 lg:max-w-none">
|
||||
{posts && posts.map((post) => (
|
||||
<div key={post.title} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
|
||||
{post.image ?
|
||||
<div className="h-48 flex-shrink-0">
|
||||
<img className="" width="100%" height="100%" src={post.image} alt={post.title} />
|
||||
</div>
|
||||
: <div className="h-20 w-full bg-slate-500" />
|
||||
}
|
||||
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
|
||||
<div className="flex-1">
|
||||
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
|
||||
{post.youtube && ["watch", "embed"].some(v => post.youtube.includes(v)) && (
|
||||
<a href={post.youtube} className="hover:underline">
|
||||
Video
|
||||
</a>)}
|
||||
</p>
|
||||
<a href={post.link} className="block mt-2">
|
||||
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{post.title}</p>
|
||||
<p className="mt-3 text-base text-gray-500">
|
||||
{post.description && post.description.length > 150 && !!post.image
|
||||
? `${post.description.slice(0, 150)} ...`
|
||||
: post.description
|
||||
}
|
||||
<div className="mt-12 max-w-lg mx-auto grid gap-6 lg:grid-cols-3 lg:max-w-none">
|
||||
{posts && posts.map(({ title, description, image, youtube, link }) => (
|
||||
<div key={link} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
|
||||
<div className="h-48 bg-stone-100 flex-shrink-0">
|
||||
{image && <img className="" width="100%" height="100%" src={image} alt={title} />}
|
||||
</div>
|
||||
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
|
||||
<div className="flex-1">
|
||||
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
|
||||
{youtube && YOUTUBE_REGEX.test(youtube) ? (
|
||||
<a target="_blank" rel="noopener" href={youtube} className="hover:underline">
|
||||
Video
|
||||
</a>) : <p>Article</p>}
|
||||
</p>
|
||||
</a>
|
||||
<Link href={link}>
|
||||
<a className="block mt-2">
|
||||
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{title}</p>
|
||||
<p className="mt-3 text-base text-gray-500">
|
||||
{description && description.length > 150
|
||||
? `${description.slice(0, 120)} ...`
|
||||
: description
|
||||
}
|
||||
</p>
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,26 +1,15 @@
|
|||
import { NextSeo } from "next-seo";
|
||||
import LiteYouTubeEmbed from "react-lite-youtube-embed";
|
||||
|
||||
import { YOUTUBE_REGEX } from "../lib/constants";
|
||||
import siteConfig from "../config/siteConfig";
|
||||
import MdxContent from "./MdxContent";
|
||||
import siteConfig from "../config/siteConfig";
|
||||
|
||||
import LiteYouTubeEmbed from "react-lite-youtube-embed";
|
||||
import { YOUTUBE_REGEX, YOUTUBE_ID_REGEX } from "lib/constants";
|
||||
|
||||
export default function MdxPage({ body, meta }) {
|
||||
const { title, description, date, keywords, youtube, podcast, image, _raw } =
|
||||
meta;
|
||||
|
||||
let youtubeThumnbnail;
|
||||
|
||||
const youtubeId =
|
||||
youtube && YOUTUBE_REGEX.test(youtube) && youtube.split(/^|=|\//).pop();
|
||||
|
||||
if (youtubeId && !image) {
|
||||
// get the youtube thumbnail image from https://img.youtube.com/vi/<youtube-video-id>/maxresdefault.jpg
|
||||
youtubeThumnbnail = youtube.replace(
|
||||
YOUTUBE_REGEX,
|
||||
`https://img.youtube.com/vi/${youtubeId}/maxresdefault.jpg`
|
||||
);
|
||||
}
|
||||
const youtubeId = youtube && YOUTUBE_REGEX.test(youtube) && youtube.match(YOUTUBE_ID_REGEX)[1]
|
||||
|
||||
const PodcastIcon = siteConfig.social.find((s) => s.name === "Podcast").icon;
|
||||
|
||||
|
|
@ -32,11 +21,7 @@ export default function MdxPage({ body, meta }) {
|
|||
.replace(/(^\w{1})|(\s{1}\w{1})/g, (str) => str.toUpperCase());
|
||||
|
||||
const SeoTitle = title ?? titleFromUrl;
|
||||
const imageUrl = image
|
||||
? siteConfig.url + image
|
||||
: youtubeThumnbnail
|
||||
? youtubeThumnbnail
|
||||
: null;
|
||||
const imageUrl = image ? siteConfig.url + image : null;
|
||||
|
||||
// enable editing for all pages for now
|
||||
const editUrl = siteConfig.repoRoot + siteConfig.repoEditPath + _raw.sourceFilePath
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ const navLinks = [
|
|||
{ href: '/guide', name: 'Guide' },
|
||||
{ href: '/claims', name: 'Claims' },
|
||||
{ href: '/library', name: 'Library' },
|
||||
{ href: '/notes', name: 'Notes' },
|
||||
{ href: '/webinars', name: 'Webinars' },
|
||||
{ href: '/contribute', name: 'Contribute' },
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
export const YOUTUBE_REGEX = /^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#\&\?]*).*/;
|
||||
export const YOUTUBE_ID_REGEX = /(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:\S*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&\"'>\s]+)/
|
||||
|
||||
export const TWITTER_REGEX = /^https?:\/\/twitter\.com\/(?:#!\/)?(\w+)\/status(es)?\/(\d+)/;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,68 @@
|
|||
import Link from "next/link";
|
||||
import { allOtherPages } from "contentlayer/generated"
|
||||
import { YOUTUBE_REGEX } from "lib/constants";
|
||||
|
||||
export async function getStaticProps() {
|
||||
const posts = allOtherPages
|
||||
.filter((page) => page._raw.sourceFileDir === "notes")
|
||||
.map((page) => {
|
||||
return {
|
||||
title: page.title || null,
|
||||
description: page.description || null,
|
||||
date: page.date,
|
||||
image: page.image || null,
|
||||
youtube: page.youtube || null,
|
||||
link: `/${page._raw.flattenedPath}`,
|
||||
};
|
||||
})
|
||||
.sort((a, b) => new Date(b.date) - new Date(a.date));
|
||||
|
||||
return { props: { posts } };
|
||||
}
|
||||
|
||||
export default function Notes({ posts }) {
|
||||
return (
|
||||
<div className="relative pt-16 pb-20 px-4 sm:px-6 lg:pt-24 lg:pb-28 lg:px-8">
|
||||
<div className="relative max-w-7xl mx-auto">
|
||||
<div className="text-center">
|
||||
<p className="mt-3 max-w-2xl mx-auto text-3xl text-gray-500 sm:mt-4">
|
||||
Our latest articles and explorations.
|
||||
</p>
|
||||
</div>
|
||||
<div className="mt-12 max-w-lg mx-auto grid gap-6 lg:grid-cols-3 lg:max-w-none">
|
||||
{posts && posts.map(({ title, description, image, youtube, link }) => (
|
||||
title && description &&
|
||||
(<div key={link} className="flex flex-col rounded-lg shadow-lg overflow-hidden">
|
||||
<div className={`bg-stone-100 flex-shrink-0 ${image ? "h-48" : "h-10"}`}>
|
||||
{image && <img className="" width="100%" height="100%" src={image} alt={title} />}
|
||||
</div>
|
||||
<div className="flex-1 bg-slate-800 p-6 flex flex-col justify-between">
|
||||
<div className="flex-1">
|
||||
<p className="text-sm font-medium text-indigo-600 dark:text-yellow-500">
|
||||
{youtube && YOUTUBE_REGEX.test(youtube)
|
||||
? (<a target="_blank" rel="noopener" href={youtube} className="hover:underline">
|
||||
Video
|
||||
</a>)
|
||||
: <p>Article</p>
|
||||
}
|
||||
</p>
|
||||
<Link href={link}>
|
||||
<a className="block mt-2">
|
||||
<p className="text-xl font-semibold text-slate-900 dark:text-slate-300">{title}</p>
|
||||
<p className="mt-3 text-base text-gray-500">
|
||||
{description && description.length > 150
|
||||
? `${description.slice(0, image ? 120 : 200)} ...`
|
||||
: description
|
||||
}
|
||||
</p>
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</div>)
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86dd7efcecbf25c386bb4446db6f63bb523c3ff312fcc33c7c1c0bf67c595673
|
||||
size 62222
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ddeaaa2b8a8f0b3b8e0eb033d8945f652a7e4fdddeb168c8ef2ed21ee55eab3c
|
||||
size 73376
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5a0554c45c4ffdc843020fdefa19d2b99e11e26b18753e4904cee4f945d45a5a
|
||||
size 112451
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cc64cbb4d18a0350a1eddca3f9b418d2c17b2064797611708e1af7f187e6548c
|
||||
size 139829
|
||||
Loading…
Reference in New Issue