Compare commits
No commits in common. "b1570ad756b89e5983f0c873038da7408725f19b" and "481821e7d27c252b2448beaefd51b080f6462f41" have entirely different histories.
b1570ad756
...
481821e7d2
14
.gitignore
vendored
14
.gitignore
vendored
@ -18,17 +18,9 @@
|
|||||||
npm-debug.log*
|
npm-debug.log*
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
bun.lockb
|
|
||||||
bun.lock
|
|
||||||
|
|
||||||
yarn.lock
|
all_files_text.txt
|
||||||
|
|
||||||
build.sh
|
/test
|
||||||
build_dev.sh
|
|
||||||
develop.sh
|
|
||||||
|
|
||||||
docusaurus.config.ts
|
/temp
|
||||||
|
|
||||||
sidebars.ts
|
|
||||||
|
|
||||||
tsconfig.json
|
|
35
README.md
35
README.md
@ -1,16 +1,35 @@
|
|||||||
<h1>ThreeFold DePIN Board</h1>
|
<h1>ThreeFold DePIN Board</h1>
|
||||||
|
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
|
||||||
to run in development mode
|
- [Introduction](#introduction)
|
||||||
|
- [Steps](#steps)
|
||||||
|
- [URL](#url)
|
||||||
|
|
||||||
```bash
|
---
|
||||||
#first time to get hero
|
|
||||||
curl 'https://raw.githubusercontent.com/freeflowuniverse/herolib/refs/heads/main/install_v.sh' > /tmp/install_v.sh
|
|
||||||
bash /tmp/install_v.sh --analyzer --herolib
|
|
||||||
#DONT FORGET TO START A NEW SHELL (otherwise the paths will not be set)
|
|
||||||
|
|
||||||
hero docusaurus -u https://git.ourworld.tf/tfgrid/info_docs_depin -d
|
## Introduction
|
||||||
```
|
|
||||||
|
This repository contains the code to deploy the ThreeFold DePIN Board.
|
||||||
|
|
||||||
|
## Steps
|
||||||
|
|
||||||
|
- Install
|
||||||
|
```
|
||||||
|
bash install.sh
|
||||||
|
```
|
||||||
|
- Run locally
|
||||||
|
```
|
||||||
|
bash develop.sh
|
||||||
|
```
|
||||||
|
- Push change online on production website
|
||||||
|
```
|
||||||
|
bash build.sh
|
||||||
|
```
|
||||||
|
- Push change online on stating website
|
||||||
|
```
|
||||||
|
bash build-dev.sh
|
||||||
|
```
|
||||||
|
|
||||||
## URL
|
## URL
|
||||||
|
|
||||||
|
3
babel.config.js
Normal file
3
babel.config.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
|
||||||
|
};
|
22
build-dev.sh
Executable file
22
build-dev.sh
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
cd "${script_dir}"
|
||||||
|
|
||||||
|
export PATH=${BASE}/node_modules/.bin:$PATH
|
||||||
|
|
||||||
|
echo "Docs directory: $script_dir"
|
||||||
|
|
||||||
|
# Change baseUrl to '/depindev/'
|
||||||
|
sed -i "s|/depin/|/depindev/|g" docusaurus.config.ts ./src/pages/index.tsx
|
||||||
|
|
||||||
|
#bun build
|
||||||
|
#bun ${script_dir}/node_modules/.bin/docusaurus build
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/depindev
|
||||||
|
|
||||||
|
# Change baseUrl to '/depin/'
|
||||||
|
sed -i "s|/depindev/|/depin/|g" docusaurus.config.ts ./src/pages/index.tsx
|
16
build.sh
16
build.sh
@ -1,18 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -ex
|
||||||
|
|
||||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "${script_dir}"
|
cd "${script_dir}"
|
||||||
|
|
||||||
|
export PATH=${BASE}/node_modules/.bin:$PATH
|
||||||
|
|
||||||
echo "Docs directory: $script_dir"
|
echo "Docs directory: $script_dir"
|
||||||
|
|
||||||
cd /Users/despiegk/hero/var/docusaurus
|
#bun build
|
||||||
|
#bun ${script_dir}/node_modules/.bin/docusaurus build
|
||||||
|
pnpm build
|
||||||
|
|
||||||
export PATH=/tmp/docusaurus_build/node_modules/.bin:$PATH
|
rsync -rv --delete ${script_dir}/build/ root@info.ourworld.tf:/root/hero/www/info/depin
|
||||||
|
|
||||||
rm -rf /Users/despiegk/hero/var/docusaurus/build/
|
|
||||||
|
|
||||||
bun docusaurus build
|
|
||||||
|
|
||||||
rsync -rv --delete /Users/despiegk/hero/var/docusaurus/build/ root@info.ourworld.tf:/root/hero/www/info/depin/
|
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"style": "dark",
|
|
||||||
"links": [
|
|
||||||
{
|
|
||||||
"title": "Overview",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"label": "DePIN Boards",
|
|
||||||
"href": "/docs/depin_board"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "DePIN Charts",
|
|
||||||
"href": "/docs/depin_6dchart"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Community",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"label": "Feedback",
|
|
||||||
"to": "/docs/feedback"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Gitea Repo",
|
|
||||||
"href": "https://git.ourworld.tf/tfgrid/info_docs_depin"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "Links",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"label": "ThreeFold.io",
|
|
||||||
"href": "https://threefold.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Dashboard",
|
|
||||||
"href": "https://dashboard.grid.tf"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"copyright": "Copyright © 2025 ThreeFold"
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "DePIN Projects",
|
|
||||||
"tagline": "Navigate the rapidly evolving landscape of Decentralized Physical Infrastructure Networks (DePIN)",
|
|
||||||
"favicon": "img/favicon_depin.png",
|
|
||||||
"url": "https://info.ourworld.tf",
|
|
||||||
"url_home": "docs/introduction",
|
|
||||||
"baseUrl": "/depin/",
|
|
||||||
"image": "img/ourworld_depin.png",
|
|
||||||
"metadata": {
|
|
||||||
"description": "Navigate the rapidly evolving landscape of Decentralized Physical Infrastructure Networks (DePIN).",
|
|
||||||
"image": "https://info.ourworld.tf/img/ourworld_depin.png",
|
|
||||||
"title": "Introduction | DePIN Projects"
|
|
||||||
},
|
|
||||||
"buildDest": "root@info.ourworld.tf:/root/hero/www/info",
|
|
||||||
"buildDestDev": "root@info.ourworld.tf:/root/hero/www/infodev"
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "DePIN Projects",
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"type": "docSidebar",
|
|
||||||
"sidebarId": "tutorialSidebar",
|
|
||||||
"position": "left",
|
|
||||||
"label": "Docs"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"href": "https://git.ourworld.tf/tfgrid/info_docs_depin",
|
|
||||||
"label": "Gitea",
|
|
||||||
"position": "right"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,14 +1,12 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -e
|
set -ex
|
||||||
|
|
||||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
cd "${script_dir}"
|
cd "${script_dir}"
|
||||||
|
|
||||||
echo "Docs directory: $script_dir"
|
echo "Docs directory: $script_dir"
|
||||||
|
|
||||||
cd /Users/despiegk/hero/var/docusaurus
|
export NODE_OPTIONS=--openssl-legacy-provider
|
||||||
|
|
||||||
export PATH=/tmp/docusaurus_build/node_modules/.bin:$PATH
|
npm run start -- --host 0.0.0.0
|
||||||
|
|
||||||
bun run start -p 3100
|
|
||||||
|
141
docusaurus.config.ts
Normal file
141
docusaurus.config.ts
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
import {themes as prismThemes} from 'prism-react-renderer';
|
||||||
|
import type {Config} from '@docusaurus/types';
|
||||||
|
import type * as Preset from '@docusaurus/preset-classic';
|
||||||
|
|
||||||
|
const config: Config = {
|
||||||
|
title: 'DePIN Projects',
|
||||||
|
tagline: 'Navigate the rapidly evolving landscape of Decentralized Physical Infrastructure Networks (DePIN)',
|
||||||
|
favicon: 'img/favicon_depin.png',
|
||||||
|
|
||||||
|
url: 'https://info.ourworld.tf',
|
||||||
|
baseUrl: '/depin/',
|
||||||
|
|
||||||
|
onBrokenLinks: 'throw',
|
||||||
|
onBrokenMarkdownLinks: 'warn',
|
||||||
|
|
||||||
|
i18n: {
|
||||||
|
defaultLocale: 'en',
|
||||||
|
locales: ['en'],
|
||||||
|
},
|
||||||
|
|
||||||
|
presets: [
|
||||||
|
[
|
||||||
|
'classic',
|
||||||
|
{
|
||||||
|
docs: {
|
||||||
|
sidebarPath: './sidebars.ts',
|
||||||
|
},
|
||||||
|
blog: {
|
||||||
|
showReadingTime: true,
|
||||||
|
feedOptions: {
|
||||||
|
type: ['rss', 'atom'],
|
||||||
|
xslt: true,
|
||||||
|
},
|
||||||
|
onInlineTags: 'warn',
|
||||||
|
onInlineAuthors: 'warn',
|
||||||
|
onUntruncatedBlogPosts: 'warn',
|
||||||
|
},
|
||||||
|
theme: {
|
||||||
|
customCss: './src/css/custom.css',
|
||||||
|
},
|
||||||
|
} satisfies Preset.Options,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
markdown: {
|
||||||
|
mermaid: true,
|
||||||
|
},
|
||||||
|
themes: ['@docusaurus/theme-mermaid'],
|
||||||
|
|
||||||
|
scripts: [
|
||||||
|
|
||||||
|
{
|
||||||
|
src:
|
||||||
|
'/js/crisp.js',
|
||||||
|
async: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
|
||||||
|
themeConfig: {
|
||||||
|
|
||||||
|
colorMode: {
|
||||||
|
defaultMode: 'dark',
|
||||||
|
disableSwitch: true,
|
||||||
|
respectPrefersColorScheme: false,
|
||||||
|
},
|
||||||
|
image: 'img/ourworld_depin.png',
|
||||||
|
metadata: [
|
||||||
|
{ name: 'description', content: 'Navigate the rapidly evolving landscape of Decentralized Physical Infrastructure Networks (DePIN).' },
|
||||||
|
{ property: 'og:image', content: 'https://info.ourworld.tf/img/ourworld_depin.png' },
|
||||||
|
{ property: 'og:description', content: 'Navigate the rapidly evolving landscape of Decentralized Physical Infrastructure Networks (DePIN).' },
|
||||||
|
{ property: 'og:title', content: 'Introduction | DePIN Projects' },
|
||||||
|
],
|
||||||
|
navbar: {
|
||||||
|
title: 'DePIN Projects',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
type: 'docSidebar',
|
||||||
|
sidebarId: 'tutorialSidebar',
|
||||||
|
position: 'left',
|
||||||
|
label: 'Docs',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: 'https://git.ourworld.tf/tfgrid/info_docs_depin',
|
||||||
|
label: 'Gitea',
|
||||||
|
position: 'right',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
footer: {
|
||||||
|
style: 'dark',
|
||||||
|
links: [
|
||||||
|
{
|
||||||
|
title: 'Overview',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'DePIN Boards',
|
||||||
|
href: '/docs/depin_board',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'DePIN Charts',
|
||||||
|
href: '/docs/depin_6dchart',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Community',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'Feedback',
|
||||||
|
to: '/docs/feedback',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Gitea Repo',
|
||||||
|
href: 'https://git.ourworld.tf/tfgrid/info_docs_depin',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Links',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
label: 'ThreeFold.io',
|
||||||
|
href: 'https://threefold.io',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: 'Dashboard',
|
||||||
|
href: 'https://dashboard.grid.tf',
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
copyright: `Copyright © ${new Date().getFullYear()} OurWorld`,
|
||||||
|
},
|
||||||
|
prism: {
|
||||||
|
theme: prismThemes.github,
|
||||||
|
darkTheme: prismThemes.dracula,
|
||||||
|
},
|
||||||
|
} satisfies Preset.ThemeConfig,
|
||||||
|
};
|
||||||
|
|
||||||
|
export default config;
|
24
install.sh
Executable file
24
install.sh
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
cd "${script_dir}"
|
||||||
|
|
||||||
|
echo "Docs directory: $script_dir"
|
||||||
|
|
||||||
|
# Check if bun is installed
|
||||||
|
# if ! command -v bun &> /dev/null; then
|
||||||
|
# echo "Bun is not installed. Installing..."
|
||||||
|
# curl -fsSL https://bun.sh/install | bash
|
||||||
|
# else
|
||||||
|
# echo "Bun is already installed."
|
||||||
|
# fi
|
||||||
|
|
||||||
|
#bun install
|
||||||
|
|
||||||
|
export PATH=${BASE}/node_modules/.bin:$PATH
|
||||||
|
|
||||||
|
npm install @docusaurus/core@3.6.3 @docusaurus/preset-classic@3.6.3 @docusaurus/theme-mermaid@3.6.3
|
||||||
|
pnpm install
|
18240
package-lock.json
generated
Normal file
18240
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
51
package.json
Normal file
51
package.json
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"name": "docs-website",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"docusaurus": "docusaurus",
|
||||||
|
"start": "docusaurus start",
|
||||||
|
"build": "docusaurus build",
|
||||||
|
"swizzle": "docusaurus swizzle",
|
||||||
|
"deploy": "docusaurus deploy",
|
||||||
|
"clear": "docusaurus clear",
|
||||||
|
"serve": "docusaurus serve",
|
||||||
|
"write-translations": "docusaurus write-translations",
|
||||||
|
"write-heading-ids": "docusaurus write-heading-ids",
|
||||||
|
"typecheck": "tsc"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@docusaurus/core": "^3.6.3",
|
||||||
|
"@docusaurus/preset-classic": "^3.6.3",
|
||||||
|
"@docusaurus/theme-mermaid": "^3.6.3",
|
||||||
|
"@mdx-js/react": "^3.0.0",
|
||||||
|
"chart.js": "^4.4.7",
|
||||||
|
"clsx": "^2.0.0",
|
||||||
|
"prism-react-renderer": "^2.3.0",
|
||||||
|
"react": "^18.0.0",
|
||||||
|
"react-chartjs-2": "^5.3.0",
|
||||||
|
"react-dom": "^18.0.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@docusaurus/module-type-aliases": "^3.6.3",
|
||||||
|
"@docusaurus/tsconfig": "3.5.2",
|
||||||
|
"@docusaurus/types": "3.5.2",
|
||||||
|
"typescript": "~5.5.2"
|
||||||
|
},
|
||||||
|
"browserslist": {
|
||||||
|
"production": [
|
||||||
|
">0.5%",
|
||||||
|
"not dead",
|
||||||
|
"not op_mini all"
|
||||||
|
],
|
||||||
|
"development": [
|
||||||
|
"last 3 chrome version",
|
||||||
|
"last 3 firefox version",
|
||||||
|
"last 5 safari version"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18.0"
|
||||||
|
},
|
||||||
|
"packageManager": "pnpm@9.3.0+sha512.ee7b93e0c2bd11409c6424f92b866f31d3ea1bef5fbe47d3c7500cdc3c9668833d2e55681ad66df5b640c61fa9dc25d546efa54d76d7f8bf54b13614ac293631"
|
||||||
|
}
|
12221
pnpm-lock.yaml
Normal file
12221
pnpm-lock.yaml
Normal file
File diff suppressed because it is too large
Load Diff
31
sidebars.ts
Normal file
31
sidebars.ts
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creating a sidebar enables you to:
|
||||||
|
- create an ordered group of docs
|
||||||
|
- render a sidebar for each doc of that group
|
||||||
|
- provide next/previous navigation
|
||||||
|
|
||||||
|
The sidebars can be generated from the filesystem, or explicitly defined here.
|
||||||
|
|
||||||
|
Create as many sidebars as you want.
|
||||||
|
*/
|
||||||
|
const sidebars: SidebarsConfig = {
|
||||||
|
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||||
|
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
||||||
|
|
||||||
|
// But you can create a sidebar manually
|
||||||
|
/*
|
||||||
|
tutorialSidebar: [
|
||||||
|
'intro',
|
||||||
|
'hello',
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
label: 'Tutorial',
|
||||||
|
items: ['tutorial-basics/create-a-document'],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
*/
|
||||||
|
};
|
||||||
|
|
||||||
|
export default sidebars;
|
71
src/components/HomepageFeatures/index.tsx
Normal file
71
src/components/HomepageFeatures/index.tsx
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
import clsx from 'clsx';
|
||||||
|
import Heading from '@theme/Heading';
|
||||||
|
import styles from './styles.module.css';
|
||||||
|
import { useColorMode } from '@docusaurus/theme-common'
|
||||||
|
|
||||||
|
type FeatureItem = {
|
||||||
|
title: string;
|
||||||
|
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
|
||||||
|
description: JSX.Element;
|
||||||
|
};
|
||||||
|
|
||||||
|
const FeatureList: FeatureItem[] = [
|
||||||
|
{ scale: 1.0,
|
||||||
|
fill:"currentColor",
|
||||||
|
title: 'Building Web4',
|
||||||
|
Svg: require('@site/static/img/clouds.svg').default,
|
||||||
|
description: (
|
||||||
|
<>
|
||||||
|
Laying the groundwork for Web4, the next generation of the Internet.
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ scale: 1.0,
|
||||||
|
fill:"currentColor",
|
||||||
|
title: 'ThreeFold Grid',
|
||||||
|
Svg: require('@site/static/img/nodes.svg').default,
|
||||||
|
description: (
|
||||||
|
<>
|
||||||
|
ThreeFold nodes, routers and phones create an end‑to‑end encrypted network.
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
{ scale: 1.0,
|
||||||
|
fill:"currentColor",
|
||||||
|
title: 'Community Rewards',
|
||||||
|
Svg: require('@site/static/img/rewards.svg').default,
|
||||||
|
description: (
|
||||||
|
<>
|
||||||
|
The ecosystem rewards the community to foster growth and expansion.
|
||||||
|
</>
|
||||||
|
),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
function Feature({scale, fill, id, title, Svg, description}: FeatureItem) {
|
||||||
|
return (
|
||||||
|
<div className={clsx('col col--4')}>
|
||||||
|
<div className="text--center">
|
||||||
|
<Svg transform={"scale(" + scale + ")"} fill={fill} id={id} className={styles.featureSvg} role="img" />
|
||||||
|
</div>
|
||||||
|
<div className="text--center padding-horiz--md">
|
||||||
|
<Heading as="h3">{title}</Heading>
|
||||||
|
<p>{description}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default function HomepageFeatures(): JSX.Element {
|
||||||
|
return (
|
||||||
|
<section className={styles.features}>
|
||||||
|
<div className="container">
|
||||||
|
<div className="row">
|
||||||
|
{FeatureList.map((props, idx) => (
|
||||||
|
<Feature key={idx} {...props} />
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
);
|
||||||
|
}
|
11
src/components/HomepageFeatures/styles.module.css
Normal file
11
src/components/HomepageFeatures/styles.module.css
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
.features {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 2rem 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.featureSvg {
|
||||||
|
height: 200px;
|
||||||
|
width: 200px;
|
||||||
|
}
|
101
src/components/RadarChart.tsx
Normal file
101
src/components/RadarChart.tsx
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Radar } from 'react-chartjs-2';
|
||||||
|
import {
|
||||||
|
Chart as ChartJS,
|
||||||
|
RadialLinearScale,
|
||||||
|
PointElement,
|
||||||
|
LineElement,
|
||||||
|
Filler,
|
||||||
|
Tooltip,
|
||||||
|
Legend,
|
||||||
|
} from 'chart.js';
|
||||||
|
|
||||||
|
ChartJS.register(
|
||||||
|
RadialLinearScale,
|
||||||
|
PointElement,
|
||||||
|
LineElement,
|
||||||
|
Filler,
|
||||||
|
Tooltip,
|
||||||
|
Legend
|
||||||
|
);
|
||||||
|
|
||||||
|
interface Project {
|
||||||
|
name: string;
|
||||||
|
values: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface RadarChartProps {
|
||||||
|
projectData: Project[];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define a distinct color palette
|
||||||
|
const colorPalette = [
|
||||||
|
{ border: 'rgba(54, 162, 235, 1)', background: 'rgba(54, 162, 235, 0.2)' }, // Blue
|
||||||
|
{ border: 'rgba(255, 99, 132, 1)', background: 'rgba(255, 99, 132, 0.2)' }, // Red
|
||||||
|
{ border: 'rgba(75, 192, 192, 1)', background: 'rgba(75, 192, 192, 0.2)' }, // Teal
|
||||||
|
{ border: 'rgba(255, 159, 64, 1)', background: 'rgba(255, 159, 64, 0.2)' }, // Orange
|
||||||
|
{ border: 'rgba(153, 102, 255, 1)', background: 'rgba(153, 102, 255, 0.2)' }, // Purple
|
||||||
|
{ border: 'rgba(255, 205, 86, 1)', background: 'rgba(255, 205, 86, 0.2)' }, // Yellow
|
||||||
|
{ border: 'rgba(201, 203, 207, 1)', background: 'rgba(201, 203, 207, 0.2)' }, // Gray
|
||||||
|
];
|
||||||
|
|
||||||
|
const RadarChart: React.FC<RadarChartProps> = ({ projectData }) => {
|
||||||
|
const data = {
|
||||||
|
labels: ['Decentralization', 'Open Source', 'Tokens', 'API Driven', 'Geo Fencing', 'Capacity'],
|
||||||
|
datasets: projectData.map((project, index) => ({
|
||||||
|
label: project.name,
|
||||||
|
data: project.values,
|
||||||
|
backgroundColor: colorPalette[index % colorPalette.length].background, // Use distinct background color
|
||||||
|
borderColor: colorPalette[index % colorPalette.length].border, // Use distinct border color
|
||||||
|
borderWidth: 1,
|
||||||
|
})),
|
||||||
|
};
|
||||||
|
|
||||||
|
const options = {
|
||||||
|
scales: {
|
||||||
|
r: {
|
||||||
|
min: 0,
|
||||||
|
max: 100,
|
||||||
|
ticks: {
|
||||||
|
stepSize: 20,
|
||||||
|
color: '#fff', // White color for the numbers
|
||||||
|
backdropColor: 'transparent', // Remove the white background
|
||||||
|
showLabelBackdrop: false, // Hide the square around the numbers
|
||||||
|
font: {
|
||||||
|
size: 12, // Adjust the font size if needed
|
||||||
|
},
|
||||||
|
},
|
||||||
|
grid: {
|
||||||
|
color: 'rgba(255, 255, 255, 0.1)', // Light gray grid lines for contrast
|
||||||
|
},
|
||||||
|
angleLines: {
|
||||||
|
color: 'rgba(255, 255, 255, 0.1)', // Light gray angle lines for contrast
|
||||||
|
},
|
||||||
|
pointLabels: {
|
||||||
|
color: '#fff', // White color for point labels
|
||||||
|
font: {
|
||||||
|
size: 12, // Adjust the font size of point labels
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
legend: {
|
||||||
|
position: 'top',
|
||||||
|
labels: {
|
||||||
|
color: '#fff', // White color for legend labels
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Radar
|
||||||
|
data={data}
|
||||||
|
options={options}
|
||||||
|
style={{ background: 'transparent' }} // Ensure the chart background is transparent
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default RadarChart;
|
131
src/css/custom.css
Normal file
131
src/css/custom.css
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
/**
|
||||||
|
* Any CSS included here will be global. The classic template
|
||||||
|
* bundles Infima by default. Infima is a CSS framework designed to
|
||||||
|
* work well for content-centric websites.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Ensure navbar items and logo are vertically aligned */
|
||||||
|
.navbar__logo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center; /* Center aligns the items vertically */
|
||||||
|
height: 100%; /* Ensures full height for alignment */
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar__logo img {
|
||||||
|
max-width: 150px; /* Set maximum width of the logo */
|
||||||
|
height: auto; /* Maintain aspect ratio */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Align navbar items, such as Docs and Support */
|
||||||
|
.navbar__item {
|
||||||
|
display: flex;
|
||||||
|
align-items: center; /* Vertically align the items */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Optional: Adjust padding for navbar items */
|
||||||
|
.navbar__link {
|
||||||
|
padding: 8px 12px; /* Modify values as necessary for better spacing */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Add @font-face declarations for the Inter font */
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-weight: 400; /* Light */
|
||||||
|
font-style: normal;
|
||||||
|
src: url('/fonts/Inter_28pt-Light.ttf') format('truetype'); /* Corrected path */
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-weight: 500; /* Regular */
|
||||||
|
font-style: normal;
|
||||||
|
src: url('/fonts/Inter_28pt-Regular.ttf') format('truetype'); /* Corrected path */
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Inter';
|
||||||
|
font-weight: 600; /* Medium */
|
||||||
|
font-style: normal;
|
||||||
|
src: url('/fonts/Inter_28pt-Medium.ttf') format('truetype'); /* Corrected path */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Apply the Inter font globally */
|
||||||
|
body {
|
||||||
|
font-family: 'Inter', sans-serif; /* Set the global font */
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header styles - Medium weight for headers */
|
||||||
|
h1, h2, h3, h4, h5, h6 {
|
||||||
|
font-weight: 600; /* Medium weight for headers */
|
||||||
|
font-family: 'Inter', sans-serif; /* Set the global font */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Paragraph styles - Light weight for paragraphs */
|
||||||
|
p {
|
||||||
|
font-weight: 400; /* Light weight for paragraphs */
|
||||||
|
font-family: 'Inter', sans-serif; /* Set the global font */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* You can override the default Infima variables here. */
|
||||||
|
:root {
|
||||||
|
--ifm-color-primary: #2e83ff;
|
||||||
|
--ifm-color-primary-dark: #29784c;
|
||||||
|
--ifm-color-primary-darker: #277148;
|
||||||
|
--ifm-color-primary-darkest: #205d3b;
|
||||||
|
--ifm-color-primary-light: #33925d;
|
||||||
|
--ifm-color-primary-lighter: #359962;
|
||||||
|
--ifm-color-primary-lightest: #3cad6e;
|
||||||
|
--ifm-code-font-size: 95%;
|
||||||
|
--svg-fill-color: #2a2021; /* Black fill for light mode */
|
||||||
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dark mode styles */
|
||||||
|
html[data-theme="dark"] {
|
||||||
|
--svg-fill-color: #fff; /* White fill for dark mode */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
||||||
|
[data-theme='dark'] {
|
||||||
|
--ifm-color-primary: #8d8d8d;
|
||||||
|
--ifm-color-primary-dark: #21af90;
|
||||||
|
--ifm-color-primary-darker: #1fa588;
|
||||||
|
--ifm-color-primary-darkest: #1a8870;
|
||||||
|
--ifm-color-primary-light: #29d5b0;
|
||||||
|
--ifm-color-primary-lighter: #32d8b4;
|
||||||
|
--ifm-color-primary-lightest: #4fddbf;
|
||||||
|
--svg-fill-color: #fff; /* White fill for dark mode */
|
||||||
|
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
.footer {
|
||||||
|
background-color: #131213;
|
||||||
|
}
|
||||||
|
.footer a,
|
||||||
|
.footer p,
|
||||||
|
.footer span,
|
||||||
|
.footer div {
|
||||||
|
color: #ffffff; /* Example: Light gray text for dark mode */
|
||||||
|
}
|
||||||
|
.navbar { /* or .navbar--fixedTop if it has that class */
|
||||||
|
background-color: #131213;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Apply scroll margin to footnote targets */
|
||||||
|
[data-footnote-ref="true"] {
|
||||||
|
scroll-margin-top: 80px; /* Adjust this value to match your navbar height */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ensure navbar items and logo are vertically aligned */
|
||||||
|
.navbar__logo {
|
||||||
|
display: flex;
|
||||||
|
align-items: center; /* Center aligns the items vertically */
|
||||||
|
height: 100%; /* Ensures full height for alignment */
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar__link { /* Example: for navbar links */
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
img.svg-icon {
|
||||||
|
fill: var(--svg-fill-color); /* Apply the color variable */
|
||||||
|
}
|
23
src/pages/index.module.css
Normal file
23
src/pages/index.module.css
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* CSS files with the .module.css suffix will be treated as CSS modules
|
||||||
|
* and scoped locally.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.heroBanner {
|
||||||
|
padding: 4rem 0;
|
||||||
|
text-align: center;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 996px) {
|
||||||
|
.heroBanner {
|
||||||
|
padding: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttons {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
6
src/pages/index.tsx
Normal file
6
src/pages/index.tsx
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
import React from 'react';
|
||||||
|
import { Redirect } from '@docusaurus/router';
|
||||||
|
|
||||||
|
export default function Home() {
|
||||||
|
return <Redirect to="/depin/docs/introduction" />;
|
||||||
|
}
|
7
src/pages/markdown-page.md
Normal file
7
src/pages/markdown-page.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Markdown page example
|
||||||
|
---
|
||||||
|
|
||||||
|
# Markdown page example
|
||||||
|
|
||||||
|
You don't need React to write simple standalone pages.
|
0
static/.nojekyll
Normal file
0
static/.nojekyll
Normal file
1
static/CNAME
Normal file
1
static/CNAME
Normal file
@ -0,0 +1 @@
|
|||||||
|
info.ourworld.tf/depin
|
BIN
static/fonts/Inter_28pt-Light.ttf
Normal file
BIN
static/fonts/Inter_28pt-Light.ttf
Normal file
Binary file not shown.
BIN
static/fonts/Inter_28pt-Medium.ttf
Normal file
BIN
static/fonts/Inter_28pt-Medium.ttf
Normal file
Binary file not shown.
BIN
static/fonts/Inter_28pt-Regular.ttf
Normal file
BIN
static/fonts/Inter_28pt-Regular.ttf
Normal file
Binary file not shown.
1
static/js/crisp.js
Normal file
1
static/js/crisp.js
Normal file
@ -0,0 +1 @@
|
|||||||
|
window.$crisp=[];window.CRISP_WEBSITE_ID="1a5a5241-91cb-4a41-8323-5ba5ec574da0";(function(){d=document;s=d.createElement("script");s.src="https://client.crisp.chat/l.js";s.async=1;d.getElementsByTagName("head")[0].appendChild(s);})();
|
7
tsconfig.json
Normal file
7
tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
// This file is not used in compilation. It is here just for a nice editor experience.
|
||||||
|
"extends": "@docusaurus/tsconfig",
|
||||||
|
"compilerOptions": {
|
||||||
|
"baseUrl": "docs"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user