From a20396ad97cec9a54461411e8e79af9fc6571c6b Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sat, 18 May 2024 00:33:10 +0800 Subject: [PATCH] docs: new homepage --- src/client/public/locales/pl/flag.png | Bin 0 -> 259 bytes website/docusaurus.config.ts | 5 + website/src/components/homepage/Features.tsx | 264 +++++++++++ website/src/components/homepage/Flags.tsx | 17 + .../src/components/homepage/HeaderLight.tsx | 413 ++++++++++++++++++ .../src/components/homepage/SimpleLight.tsx | 26 ++ website/src/css/custom.css | 4 + website/src/pages/index.tsx | 77 +++- website/static/img/flags/de.png | Bin 0 -> 269 bytes website/static/img/flags/en.png | Bin 0 -> 288 bytes website/static/img/flags/fr.png | Bin 0 -> 267 bytes website/static/img/flags/jp.png | Bin 0 -> 450 bytes website/static/img/flags/pl.png | Bin 0 -> 259 bytes website/static/img/flags/pt.png | Bin 0 -> 3612 bytes website/static/img/flags/ru.png | Bin 0 -> 268 bytes website/static/img/flags/zh.png | Bin 0 -> 1947 bytes website/static/img/gdpr-ccpa.svg | 110 +++++ website/static/img/logo.svg | 7 + website/static/img/logo@128.png | Bin 3377 -> 9158 bytes website/static/img/no-cookie-track.svg | 39 ++ .../img/openapi-connect-with-developer.svg | 30 ++ 21 files changed, 980 insertions(+), 12 deletions(-) create mode 100644 src/client/public/locales/pl/flag.png create mode 100644 website/src/components/homepage/Features.tsx create mode 100644 website/src/components/homepage/Flags.tsx create mode 100644 website/src/components/homepage/HeaderLight.tsx create mode 100644 website/src/components/homepage/SimpleLight.tsx create mode 100644 website/static/img/flags/de.png create mode 100644 website/static/img/flags/en.png create mode 100644 website/static/img/flags/fr.png create mode 100644 website/static/img/flags/jp.png create mode 100644 website/static/img/flags/pl.png create mode 100644 website/static/img/flags/pt.png create mode 100644 website/static/img/flags/ru.png create mode 100644 website/static/img/flags/zh.png create mode 100644 website/static/img/gdpr-ccpa.svg create mode 100644 website/static/img/no-cookie-track.svg create mode 100644 website/static/img/openapi-connect-with-developer.svg diff --git a/src/client/public/locales/pl/flag.png b/src/client/public/locales/pl/flag.png new file mode 100644 index 0000000000000000000000000000000000000000..041eea13b9e5899bf81ac0868eac31cd2301f926 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^Za}Qh!3HGbuI>>7Ql~s!978G?-(F~4%akbK`mlGu zF3)rg)tuxV&Y>28chW0P%;!1sv3PRufxkB8mw#$$ZC$c%%j9qI_xxVXvvZg2;yy7y zWZF0Tc~U?0eE6n#?=<$3;0caMlyaCci_4hh(3P(aJ8p{2ux4cDG4O9=Y-?a-lSn`i z$7Uw@n<4RmGBcjD^B5dpU_K+jaoHnr7RVf7wnHKxQ@SQIKMwNqJ!h~lgi&?Hs-vvO o7`;4mSAKVv*n9c;mh3_X$MhE#9f>X*fWBhzboFyt=akR{0IKg@b^rhX literal 0 HcmV?d00001 diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index b82b28d..a1fff31 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -74,6 +74,11 @@ const config: Config = { }, { name: 'twitter:card', content: 'summary_large_image' }, ], + colorMode: { + defaultMode: 'dark', + disableSwitch: true, + respectPrefersColorScheme: false, + }, navbar: { title: 'Tianji', logo: { diff --git a/website/src/components/homepage/Features.tsx b/website/src/components/homepage/Features.tsx new file mode 100644 index 0000000..cf406ab --- /dev/null +++ b/website/src/components/homepage/Features.tsx @@ -0,0 +1,264 @@ +import Link from '@docusaurus/Link'; +import React from 'react'; +import { + LuCode2, + LuCookie, + LuFileArchive, + LuFilePieChart, + LuGithub, + LuMonitor, + LuNetwork, + LuServer, + LuSiren, + LuUsers2, + LuWifi, +} from 'react-icons/lu'; +import { FaDocker } from 'react-icons/fa'; +import { RiSurveyLine } from 'react-icons/ri'; +import { HomepageFlags } from './Flags'; + +export const HomepageFeatures: React.FC = React.memo(() => { + return ( +
+ {/* Col1 */} +
+
+
+
+ +
+
OpenAPI
+
+
+ Tianji offers a comprehensive OpenAPI interface, providing seamless + integration and extensive functionality for developers. With + Tianji's OpenAPI, you can easily access and utilize a wide range of + services and features, ensuring a smooth and efficient development + process. Experience the power and flexibility of Tianji's complete + OpenAPI interface today. +
+ +
+ + Click here to view all api + +
+
+
+
+
+ +
+
+ GDPR & CCPA compliant +
+
+ +
+ At Tianji, we prioritize user's privacy and data protection. Our + services fully support and comply with the stringent standards set + by the General Data Protection Regulation (GDPR) and the California + Consumer Privacy Act (CCPA). We ensure that your personal + information is handled with the utmost care and security, providing + you with transparency, control, and peace of mind. +
+
+ +
+
+
+ + {/* Col2 */} +
+
+
+
+ +
+
+ Defining Features by Needs +
+
+ +
+ At Tianji, we develop lightweight features for independent + developers and small teams, focusing on their specific needs. We + create cost-effective, valuable features without the unnecessary + complexities of heavy, mature products. Our user-centric approach + ensures we deliver meaningful solutions and build trust within our + community. +
+ +
+
+
+ +
+
+ Website Analytics +
+
+ +
+
+ +
+
Uptime Monitor
+
+ +
+
+ +
+
Server Status
+
+ +
+
+ +
+
Docker Status
+
+ +
+
+ +
+
Status Page
+
+ +
+
+ +
+
Telemetry
+
+ +
+
+ +
+
Survey
+
+
+
+
+
+
+ +
+
Open Source
+
+ +
+ Tianji is an open-source project dedicated to providing robust and + efficient solutions for data integration and management. By + leveraging community contributions, Tianji continually evolves to + meet the dynamic needs of users across various industries. Its + open-source nature ensures transparency, flexibility, and the + ability to customize functionalities according to specific + requirements. Join the Tianji community today to collaborate, + innovate, and contribute to a growing ecosystem of cutting-edge data + solutions. +
+
+
+ + {/* Col3 */} +
+
+
+
+ +
+
No Cookie Track
+
+ +
+ At Tianji, user's privacy is our priority. We do not track user's + activity with cookies. This means you won't need to request user + consent for cookie tracking, simplifying the user experience and + increasing retention rates. +
+ +
+ +
+
+
+
+
+ +
+
+ Community Driven +
+
+ +
+ Tianji is a community-driven project dedicated to fostering + collaboration, innovation, and shared learning. Our vibrant + community is at the heart of everything we do, empowering members to + connect, share knowledge, and contribute to a collective vision. + Join us and be a part of a dynamic network where every voice matters + and together, we build the future. +
+ +
+ +
+ +
+ + Join + +
+
+
+
+ ); +}); +HomepageFeatures.displayName = 'HomepageFeatures'; diff --git a/website/src/components/homepage/Flags.tsx b/website/src/components/homepage/Flags.tsx new file mode 100644 index 0000000..eb1a874 --- /dev/null +++ b/website/src/components/homepage/Flags.tsx @@ -0,0 +1,17 @@ +import React from 'react'; + +export const HomepageFlags: React.FC = React.memo(() => { + return ( +
+ + + + + + + + +
+ ); +}); +HomepageFlags.displayName = 'HomepageFlags'; diff --git a/website/src/components/homepage/HeaderLight.tsx b/website/src/components/homepage/HeaderLight.tsx new file mode 100644 index 0000000..c32cb81 --- /dev/null +++ b/website/src/components/homepage/HeaderLight.tsx @@ -0,0 +1,413 @@ +import React from 'react'; + +export const HomepageHeaderLight: React.FC = React.memo(() => { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ); +}); +HomepageHeaderLight.displayName = 'HomepageHeaderLight'; diff --git a/website/src/components/homepage/SimpleLight.tsx b/website/src/components/homepage/SimpleLight.tsx new file mode 100644 index 0000000..7d3cef3 --- /dev/null +++ b/website/src/components/homepage/SimpleLight.tsx @@ -0,0 +1,26 @@ +import clsx from 'clsx'; +import React from 'react'; + +export const HomepageSimpleLight: React.FC<{ + className?: string; + colorSet: 'blue' | 'cyan'; +}> = React.memo((props) => { + const background = { + cyan: + 'radial-gradient(144.11% 103.06% at 50.00% 50.00%, rgba(27, 199, 237, 0.60) 0%, rgba(46, 180, 255, 0.06) 45.67%)', + blue: 'radial-gradient(144.11% 103.06% at 50.00% 50.00%, rgba(27, 115, 237, 0.60) 0%, rgba(194, 46, 255, 0.06) 45.67%)', + }[props.colorSet]; + + return ( +
+ ); +}); +HomepageSimpleLight.displayName = 'HomepageSimpleLight'; diff --git a/website/src/css/custom.css b/website/src/css/custom.css index 40b2352..7ea490a 100644 --- a/website/src/css/custom.css +++ b/website/src/css/custom.css @@ -28,3 +28,7 @@ --ifm-color-primary-lightest: #9ac2f4; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } + +.footer--dark { + --ifm-footer-background-color: --ifm-background-surface-color +} diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx index 6a508a7..085987b 100644 --- a/website/src/pages/index.tsx +++ b/website/src/pages/index.tsx @@ -7,12 +7,18 @@ import { Carousel } from 'react-responsive-carousel'; import { Popover } from 'antd'; import { RiDiscordFill, RiTwitterXFill, RiWechatFill } from 'react-icons/ri'; import { BlockCard } from '../components/BlockCard'; +import { HomepageHeaderLight } from '../components/homepage/HeaderLight'; +import { HomepageFeatures } from '../components/homepage/Features'; +import { HomepageSimpleLight } from '../components/homepage/SimpleLight'; +import { LuGithub } from 'react-icons/lu'; + import 'react-responsive-carousel/lib/styles/carousel.min.css'; function HomepageHeader() { const { siteConfig } = useDocusaurusContext(); + return ( -
+

@@ -23,7 +29,8 @@ function HomepageHeader() { Tianji ={' '} Website Analytics +{' '} Uptime Monitor +{' '} - Server Status + Server Status +{' '} + More...

@@ -41,7 +48,10 @@ function HomepageHeader() { Visit Demo */} -
+
$wget https://raw.githubusercontent.com/msgbyte/tianji/master/docker-compose.yml @@ -56,6 +66,24 @@ function HomepageHeader() { ASAP.
+ +
+ + Get Start + + + + Star + +
); } @@ -63,7 +91,7 @@ function HomepageHeader() { function HomepageMain() { return (
-
+ {/*
✔ No cookies
@@ -79,12 +107,26 @@ function HomepageMain() {
✔ Open Source
+
*/} + + {/* Features */} +
+ + +
-
-
+
+ Preview +
+ +
+
+ +
); @@ -110,8 +157,10 @@ function HomepageMain() { function HomepageFooter() { return ( -
-
Join Our Community
+
+
+ Join Our Community +
- +
+ - + - + + + +
); } diff --git a/website/static/img/flags/de.png b/website/static/img/flags/de.png new file mode 100644 index 0000000000000000000000000000000000000000..9a98036c58fadf2195179a3178d098731216930a GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^Za}Qh!3HGbuI>>7Qdc}(978G?-(J{W*yJeU`jGeQ z^w#e#0ZhFQZJ&H;R#*LXH(KD*IUCKx#qZ8&KBzkuyDH+ew{fOwYtWZxt(RW?F21+$ z2jkC4zk|RTrF8yiJKf&6uG4pMkV~Y zvPn%`!e6Rkl8o0q{vPI#iO(+mYBsobfBx!qt~~Cl3!c2Z*;WnoAA_f>pUXO@geCx} CkZX1T literal 0 HcmV?d00001 diff --git a/website/static/img/flags/en.png b/website/static/img/flags/en.png new file mode 100644 index 0000000000000000000000000000000000000000..7dbb29b6069b9c3b5b97ca446c88beb24fad8fbe GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^Za}Qh!3HGbuI>>7QqMhI978G?-`+MYVm6d;FPwU_ zxiz`m?vUKE>js-^6|Se1KYI{=@Tk_75Bp|b&#voT!uojb>`yXB;RBQOd1O41UFMf1NH&er zWyRE1Ne02Jghagtj?zpMvE^KD4^Dq5mvGBldO VX^ikV!vpj(gQu&X%Q~loCIGf@ZcYFI literal 0 HcmV?d00001 diff --git a/website/static/img/flags/fr.png b/website/static/img/flags/fr.png new file mode 100644 index 0000000000000000000000000000000000000000..aeedf40587fad65c9ae19dbb711f4e4b411a4a6e GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^Za}Qh!3HGbuI>>7QkOhk978H@y}fPAb;v=)HPL(X zMwQ;OCg~HWE~z-xl}&Ak>Qb2Tu}?svGI^=lGoCrDd)DvU%oV?Feeuzopr0Qksb;Q#;t literal 0 HcmV?d00001 diff --git a/website/static/img/flags/jp.png b/website/static/img/flags/jp.png new file mode 100644 index 0000000000000000000000000000000000000000..c1413aec0d8fd8a5e46334674225984bd4681c81 GIT binary patch literal 450 zcmV;z0X_bSP)j-jq`}?42#d?$KFq-(?#aB9wRY^@DeiueQPc0+&D~?3 zVozaFyeg#TphnAQ&3SO}Ur3f>9mxg<4$QyBEPV&b(wCGRpCHMBm>r)0*@YN~Pk>lV zegotsfEYqCfMO_yVkm}UC`MkNTBX=JmY(4m>2B(luBui%;x*n!++bqFjT8%O(pA|a zU1f~{L0rtQs{CvH#a!Fn($hWaD~zhT-{1f{{)JS7_>us9mU{lfg+;@?X?qg zeP&g^8OH>K=-V8L_gbml)6BR9wV(1}60q<8JJZix_uJyIx|@d5eP> zpn({EV)z>qHDV>%|4Qt~u;=U5s^`nG5=YmuBd(=)ZYAVz4&ul|zQJbjEFUv?L(}Nz zU}6f7c#ZcF=bUeZPz=RT48>3k#ZV049z6dzA!gSnKz6y$*FU-386Ie7_@@}NV&jHV sHsQkGVT)qLzQSrC8P?C5OMbg}1HK+oS({q5VE_OC07*qoM6N<$g8CcKssI20 literal 0 HcmV?d00001 diff --git a/website/static/img/flags/pl.png b/website/static/img/flags/pl.png new file mode 100644 index 0000000000000000000000000000000000000000..041eea13b9e5899bf81ac0868eac31cd2301f926 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^Za}Qh!3HGbuI>>7Ql~s!978G?-(F~4%akbK`mlGu zF3)rg)tuxV&Y>28chW0P%;!1sv3PRufxkB8mw#$$ZC$c%%j9qI_xxVXvvZg2;yy7y zWZF0Tc~U?0eE6n#?=<$3;0caMlyaCci_4hh(3P(aJ8p{2ux4cDG4O9=Y-?a-lSn`i z$7Uw@n<4RmGBcjD^B5dpU_K+jaoHnr7RVf7wnHKxQ@SQIKMwNqJ!h~lgi&?Hs-vvO o7`;4mSAKVv*n9c;mh3_X$MhE#9f>X*fWBhzboFyt=akR{0IKg@b^rhX literal 0 HcmV?d00001 diff --git a/website/static/img/flags/pt.png b/website/static/img/flags/pt.png new file mode 100644 index 0000000000000000000000000000000000000000..d40599656d563d34bb53816ab99871bcaf7718a7 GIT binary patch literal 3612 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 literal 0 HcmV?d00001 diff --git a/website/static/img/flags/zh.png b/website/static/img/flags/zh.png new file mode 100644 index 0000000000000000000000000000000000000000..63267f703d69537ea333b4cb5269d653e04b4904 GIT binary patch literal 1947 zcmaJ?c~BE~6ix_&L{kemD2TcZ){5o?5|T(1%z-FD2%vaygk(t~CW!H_j~ic@0~lF6&T=)K|7%l z2n5D&DVq;VF8mNDTEXv#KQ21J!V%(xLBWa`C{dsS5k4YCGzj>~1Y(d63PefqH$g81 z0yRe(5(b6w{24-pj36-k5HvC+j7A{57HgCOVJrv%(V$o=XJQBHu3!PFh>2ZA;gNVs z7ATP}O;&-y$pIn4cST~!ASm28b6wAbZ zO)88R2(T0?5TFp;@j?=r3{a^AvIm7qCF1}$64{MNf^RCG?7^T=8E&4yw+jnLQ;A|2 zd^Y!6EcnF4N+3wdAQBT36A6j#1cgdWB-811Gl!cS9`?YiljM*C7piVYAG3upSZ1etP-R<8cmCb(fljX+5x6G-NgMjd&)|96$i#=O-KAN-#0 ze-f)hl9V8k52_U#R6=-gF)rp%N(M^>3Lu3lM4^Zq?P8!r0V&iHg%V%|Q-OIrflw+p z8(hC2csz!mTn!22LeP)R#KIf|sZ_*R!lBVUJ={D=6b_e6=D5@8BpQvx;ZS^Fg~cI_ zV%ZAe1{o-aMzNyrSlYN)^D@YkaAY>9k|uy6u1X;Tz7)-nj-Lxe%AKhq2WMBK3T-Q0-f3S0E+F4JB1PkY7{p+JN2qNUzt0bo%c+(4J0p^j=siukNgVq(e7cqE>rm zf|a^8;@Sv`#p;;%7U>2aNlVF^m@xx`;kHs3(L=oAL>Je06E{ZM!W*g#xD)i&xox^RLDok6 zgJ-EbvK`6m#QBH05!*-r8ufS|>Tt>t9jo7O%PHGm3a;LyanyIpqb|jr(Ad6fwo|s; zwg~Ux9J-|uxoaB$|Yux9N8CBFuNx-}ndJRjz36 z(?j7ig)at*0`wyf0f}Mi+~Q!1%GlzpA6@Icey;4Fpvwg8vyz24? zn*~PBo)!C_a1LwrESs~MN!6+65B`L#Z;ojTu5=vAn-qA`uO|VOz3}Do11S~nr&DU? z1TwPEVB`50dmnDq_&OpdWbD1L@v60N{Q0OUa~t!nt$N{r{Iqd+_q&6L-qVT2_lu5U zNEsWaJ>}l6ld0F+Xmd@Mkyxf{bw$aI1(U3D&NddgTjes>Ef$AHq<1WFs)|&ShR^e_ zF?HP|K~owFVu+YVWZd2Jz2)sPSIMW#fG&6UvW#e^1IolbnqQ~cTtB@3Ap|5#4EFKP z%a)-`kC%B?vUSJ%Kd5SMWKXSZ9l^(I5f!1#8CA_g72);%7Js!20JWjSqV-MXY(T%1 zWS48{@?GT2Z1T)1HSnFA(z^nqr_lDC+QrH`&>8irB(e|(e?0PO*#oYFw|3dAyLsw$ zon6}G`YXO^2$PfM^Uj(u++OWlpFx)-hu5rhBmxKy|6%)3x1;%Y>Bk9RS1pO!@((;+ B5?=rS literal 0 HcmV?d00001 diff --git a/website/static/img/gdpr-ccpa.svg b/website/static/img/gdpr-ccpa.svg new file mode 100644 index 0000000..5c50e7b --- /dev/null +++ b/website/static/img/gdpr-ccpa.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/static/img/logo.svg b/website/static/img/logo.svg index e452887..6e2ebea 100644 --- a/website/static/img/logo.svg +++ b/website/static/img/logo.svg @@ -6,4 +6,11 @@ + + + + + + + diff --git a/website/static/img/logo@128.png b/website/static/img/logo@128.png index 5b494cefe4ae9a21f72ee3b3546f20fae3ce6c46..232371fb704cec36de07f14b8c2b1a31b7b3f2d6 100644 GIT binary patch literal 9158 zcmb7~Wm6o@*TxrjclY4#i!Hvmgy5P4CpZLmS=YalM)jE0N|*A6?EY}^uLCV3O`Ftq6)w}3|Fv`2LOOY z^j|{&GC%7s$4<8nOUDV-nUsD--~L$wWm#R?i3F)C@C%)J#lFgrEKbZ<9(Uhmeuu5tCcHyQMdF-G$e^S3V)NwYBA+ zcR!tB;|vde`SN9P)$h0t2?Yh^)5`ZxCJ+yPgiyQiG@sdG#g4SJwCJtvZRHEw?zNz& zQ>4?=)5D-dEyKq5iuspf0o@OKxoECa3kwSYvd*Cp*-TWzVm5TqPs`9NaP9iH>E>za z4s~u>Tv|!H;De&*<*lu)0NOZ@4Yy$$q$J5p@b=5|Q}YFY4CL5Y4EtW3tI~rwe3y znoCMb0F)Bx9-*tvHj_u}+}zwHj_QOv(sX2eaY)Q(r>7bLe+S9tSDilt4;Lfq>+4%L zH?2rD@hK<*@vz98M5vyA;swq4FPeQ8PQG2go^%OnehS0lA^(WDFtku-@br1%b) zx&~+Q(~lKp`h+Y%N3s#Mg!f6-?9vj&Ergo;PkWWM)zj^%nib;08=<_oMT_7y;usu8 zsD_*5 zKU6`C!ZLP=>>(~(PG!5pg4cf)1L_f?>pt>L?TO#Him0fl()tdus1STWb@e6OY6k}9 zzAVYv{C z7go6$%KJvCGo`|BC(8@OZ_hUhKzBAvKPa{?FbBQit?`M?z0w`OAGp*%d&Qgm2MfsO2f^M)u$UF zV$!}scF}vb+BTnR@2WLhAi(&l#`6T11?gS zl($BLf5Zpc`pLbuHfDqm_M(Jc-XUA4^$_EEGn&r$&41(9R&9z+6pEaQ8*Q{NE$e0+M{_T^S3#I5@^C(4SL(1pZgVHkz#CYC1b5*=PFenIF6s%@$u1Tmnk& zSY;kmo=6N#XY+4K@L|uo3@36i8 z_xxETx9;`vxWVQ1$e`!wP1iaN)+nKf+_<|e(DhHq>7?jJCx&C7cKbV^_lY55ia0Gr z2RLoS`A4%+vkikWZ<(B@Al+gcywaZ>!J~&p!h0Y$=C@tlS?f0Loz&fGv*%bk`_208 z&-=__y5LnsJTJdeCk=dRh1cc9?gg#7{y)DAEKbWqw!5$A)b6zMfi1ZSXl9xy)~t2L z@+d(3W3T3_3skV6#B&{b z;{FDF8Uq_E=}fl+@76>wl7j!0*qPSBTKw{cOclj5&QqjGMwvKx#g@!Ixw5J(<4^|syH+w&d*K5jmF zxVr;e@N;)kk?@$rk)jfoA@!vx(O~`4a?;szsiJx1x#C2p)*?ew&N0`Qe-HWpEp!vu ze`crACxP7sKvlES0y0#GOMDgAHF}&84L`o}MO?!0bjZ*StQFtw+4>)7Cxg>KpOuvr zZ&1$sj|9Whcb5(6?wv^eKjr!j=4NgypMKzcVrRV_O1*DXGWXdC}JdVjg-Oxl~tFNF+&V95gnMSo<#j^YQ3s z7zozyy#Rxirbd#^6LST;Q>Db#-R+p4pLb;c3+QNA+~5}|O1}T=vrj`qvq3>l{;fdL zS0K?e5BYcUH~O~dv+2YLq7cVkt)pkWv|qyN^&s9_9z%;CtM22p0Sm4gy7Kb!4)A1r z)4~zMT=!nLzBOs%-<~LK^kA;nQ4-mvf+2>+y8Bku+X?~pSdzyTyrmBKWHY)mV)HZN zW`xEsPY2yLzfmO=3V40m*dT&{RYzz9lJ+$}M(+pFqzEUXe|3c~$HTr$uLBtd=Hdzz zttE@59+UJ0Waj+et++E1Nt3#nQiMDgrt&3h>C-4{+y~@inoOELs!(K@wH54SDl8f+ z)J?rFv7t~7jbp)@h%CniYQ;Hk(?A5?jB`H6uzsza z7#ZPrM8>lT z<3jCEa5rPBmeB!SNJJ}MT?W^AZpa6Q zei4^-(|9zrkDJJeUa6{Wo5p9IS5t+nSg^XsfP?GeW|}Ed?JrSEiYZF!EXQ^f?}{hC zIG23&e(vxIPe2C^FMu^tb#BFSqVjf}2;62g1Xy33EH(FkF?Ao! zY9!vD%8$$Cvy$smrVAXXl&1*Z8i?_UXWo%ViU&rcx9Ig>7ye39Fs-c!MhFqz!S~Vy zh&Al)ZM)J2-ET$`b5RzTH_ZOCp9H-8SA{TcsB zxlwCKQB+YfDyasab2MqlZ=ZQY%@BI;1F9oT`)BZdzn7O6%g+S@MOvU*^0BF;+tMpXPMLa)#Duz>nmg zNKa6zB%+TO8yY}cD6;@s9^+8gk6V^Ep}&6$ebQeA?YJI%yl#Yz(lJ_5y~S*FQe zbP(tnwZf%GPBgJCA6X<$PJ96t8M@rnYf;s9wpeM74j-6r1OszThk8KCRt|sVF6vT= z;*bSv+PpZ3Zvp{%2p_@v5^WB#9$f~NKqSji0e`LIvkPS$adk}%XBZ6;HsX~gDkjRn zO$#rbNDP%6@&2KW??LH+5MqifzW+&-`=B=L^SUpqqS`l5O^lyBXY2y;CBe-WuYb%` zyPWgyaQ5H}Y(j`4AsYanncOWYcbMEPh{ujgY7$>dv|o7h(8fVn$V&vJQHHf?!Hq0A zn1qC6JoyjEk8ajfE1%OWW^QgypesPka_Wpha{rKZ;8;*5Z?azn#EjwWqa&!Z0nt@#{gjc z#=Ni4r9^mZr zJ)%9y`Z%bLL8#%xt1$#d}IrCji5=?)>@WL4coZXz_me7%z5x=rX(E|#}(sj9*sXs{OAR8rw6QM36 zAhzO;4kcdX+?Rz82Gz6{gTX%J2b?@+PtBQ8{`WAYnka$v{T=iroL;F9>#3Fv%C|XE zGer5b_GSLA{3QrW3R0y?A47kPCJpCe7j285)v{I7U!p_}Jia=jhWJakBl~ zLce_p^Aag`m_|W@f3W#m@(aQtB0H%}->MVs7N`t;*w21N6wtY%phLJFTdr+Eptq4& zX~qwKtnVI)?gqF7QU0Z6PK*LVLWDE&4#cQK1Q#FpIe63A$g9}uh9Ht9bI*4hbd867 zu9~ZODP@gqZQ_EdI@mN#jleom$MtjB2?4-$7D&I zOG}`luI{`>O{D}Sgz~;c@5I$o^UzZaiSeDXw~OR!eolu&YIeoujsp4r=Ex&}>%81S zdh|)41Is9ZCSGHmWh!kIa%i*H@xpE^>j<*6H91g*9=C$Z|9CSwzi-Dvc<7Aly!eN6OKkSv@~`mB*7hr(EYILkJ|kyvb|m`RG=TCNO1{6 z7LhE4v}$N*padWx+^^Ek9ubc+?G8zv7?)K0g)97=Xu9;>PWg!C8E@6Or(KuzIhi#FJAOG((sa;fWi74l1P6*c`w2e#KPO`Q`aMn3s;0R#O=GQ%Bm)myJ;3KY2-&VyN=Idz0bipd<-1 zec0h9?$-+4%SE(i9gS=r9c_yh5o-~ALP)l)s-Yd4OuojS^2qyB^=`;sC- z17V6*&^iAbZ=&EE4CM06@_RUbbPzn z`}R%#lf{dHf8#7n!8(SQpScLoOe7DT^dP6jaXjydQ7HB*nNso0;Z6jck@n&Ch=k|E z?w1a?!;>pTR{5MXji6*H&cnHWG{hC@=j*rX%k5srrrls1 zZDl02hc`rxYrlI+OH2PY4%4d5NyIQL{0M>zF~NiV1LHpmx~#&}EXFFESb9d-3TTi& z;bi7M43Napv8O{1nZR3hbIk%RABh(@vBZ?Tnkh0r(*aRsh#{x>CF+&OHJ0BaOvok!C*se1_nui8P(s>8PYtUxch=XY4U#qtn;p``33K40P1E!Cspto=SQ$oo%fGY!+WoQ+6X{Gye zjB~sZj3>y?16OULpZxF7VGN5j`N0q47PmZx-z<5gOK3-E+Jx-DB%8|_UBIKS+E-Msn))kZftNZGS) zuP155QSm5diunOGL$~Dn_k}jc#ri7_jF0Bu;bnDL=EaRj5WTp%=vT7vjj3nE%XNiJ zSq;{6+y2)y@Q-({QX1{8-#R)vrc5>;5sR6c1JBX6<3KLit*%x+P!0 zQjfhy2~!RRAGU`Qc#cL2ScS#1AA*!*Cm4m$z&N>R-bp~+{-r{;d}9lX^V#`tm$W{A zLJ7yX1f=X79GZkhM1c3_JK85YBBM5;PQMbQTOsvu&uykG|GeW|TGUuRKnbx73ccxgX?RASNX}nwy8reUwV*CP|2fFfLI# zcV(k^${222Lj@txK5+9hbzz&p>l`k*2TdLDv&|ef9;2w7$<13Fe#v#LnU7#M7nRGMrP1mmSNd1o`T-l#)j(&O9?JE!JmQI%^sr{8;q+sFmJM?F^A*7#`-`zg6 z4M~RW&(!8y8}fCGQK;CMxgOI$}@P2`WZ)%4V$1y+^5tVn6Gh!-Wm9Gi+m|w zqpkBTnv~mE4{UEb`H7t)lQtxBj7?*<7JCv(5i&*J0!;e5QIvn9V9PQ6#t$GlOef|_ zpKn^uFN<=6V1P;EYhy_sI|ISi%c|n-`PZb8Pcd+QQL$KS6ke)EeJ!LyZ1&;_=Q~OJ z%h_!1(QZe2?zM4sfGT;L{na(rHIOQqQZ19~FBk_KuPjJ4@(0TkTV*LnU?5W;Uxd<5 zsZISGDXFg5T9HwcYAO;1`-|GlOwuHrip7E<@xxVI>2k8m-Rhe9>O}ow7F`ghe4U2y zIrfp82;66tN5j)a!IOLUE@M15E~1HbSUyM8#he5+hr&zJcS2aGm>WGOGxIxk6XQ%4 zPAODHs{?Fs_m%~8PI7y5qhdVl4@x4cvf5_QkWeQ8avfe6hMg7Bg*RMKDCCNJl$RgG zgOYP|O{OJ${!1DTu)}>IFHyciQ{`0^trIahY4EYhhCsRr@jUuuiMytz=C7-1nSw$u z0AXht>3SVhwwP0A)qRLA&`FwgiO%pM*Kc)HNtEvAV=FIA-A>FCzmUiCEI- z8$B{{V=QXp;UR&UJZ3pUpU+m6eAlS^6^^qM?7DQ8sFFQXBx1nro}azF_X>bs4n&Nu zg&zoZchh}{lICC^B@l7Ag&Eld@EG%xrpbS3_!*|1W3Q>__sZ4hUR_;rve^$_1MoE6 z-Q9)l&-|E2xWqG&1OX^S8NdGID+s0efJRPSeC{`+)dFyQbdlKIF72h>rZT9$O*a9q z2iPm@JJz?AXDQnr@sZh6oMTtXng_)=%|5^;jYA|6ob*%0%_I%*)f5tD=xO$#C6&v! z@T})wTkN~@3jxD{>&Fn85c<}kEakS;kinOiEebqwczmfBm5q@Gw~v@^OOxmj_GWi8Vh6robe`Bh|vo zz#mqwbKdbOG(^;lStac2i$(P}DPxJ4dzlo<(HyBtJBPlG(Z2DAoir^6HeqM61`^xRfBboQ8HQ z?hvP&8vQyBhKfGg`aN934)3~WxF6V%oZEp~&BrC$C^@6{eaGkbNSxQG)XnBNZ%^kT z9Q+g0She)2Vqi0O%z{Vka$l}`tb8gOzUYg$I+vHe6Cc4|Gc_@x`hMtJp^+=1j`2mH zbn3%1rvAi)0r3f3Kx7hNG$*IpSRryW)YjI{ZMse}ZDtd5oDuFqzm*GDH5w zS(rv}b0CJux{nULF^FNTcN!b#BMxHQl9A+pc6)kZRSo7E6_iLjue^c?5k_$+pY? z(hsDAa_hoZVw?YXZ!t z@J6=2a=3CPS7k%oiY0RSNy$2`<(;ff6_qnUahnTp8(79|OF=pzOgUgU73OLR zb|~fCTfFcY<}|2RzggS@;r6BtV-Ykt*W20Iq1)fGjtF4h-e8e(8P?`8%J$-E-)9Aj zQOCW1@5eu3F_93IXE09O6T3Zx9|DZc&Qj)?@qE9zoJc3L4lhV;>|>5I0$TJU>g7}C zPlpu+-jTYQYUxmsuvz&d0IKY2u4~$ou?)yOu4jR zX`0511hvjXPq{mmmVOO#1R4DRF1JuSBGm{T&C^(PB0CO4QZe0%F1S@j5Ch8!ArLI9 zW)d8!E%VZu{N{os6fKB_pTXbLJX>+}K%*j)LgOYm+cRhd;sCU$`?xp%`_ez1Y!GIqpVeUU6~lYN3q67Y{HdfcJYgX# z^lL?%vS+OUuI>kmn_>leoHrDBXjN{wd1}vp>{y!L1K%eRBR1Y-5>15;#_wdbD(EGm zYFnYx0=M%hCAJF>8UO*wTgiQC780wfcU$3En66WN@(xCsFu2RB!bj)bbesP|IM`RO+eB86y{1B>66aobte z5hCLOYC*f=u9|fV)FLO*UQYLoewo0bMxRzZTFHaYTo6$DPnAMj3@kkxGqe1+($bpe z%S_#w=E+`OIEt!0`7%xGes&uaM;}^%eASMS`R#Q}d85sj58~t&^njU7`GHyEDu;cf zh?(Y2{%$l}$PW^yKo%?fu8rW=XC<$FyhnrSmJe@LS!*dOS*o}HeUlwNt*+M(H;==6 zeA~F^6PB5w)0N+!TOWmt;M;~AYF>_8szyUn24(fS$*%5^-U*A(8Z z`~@WwzGq%`^KVR(-t!91l3nXq;KYS6=mYT^OJ{oHCl4b03|}-C1#<+0nyV1B_Z!`T zMwGmR+fH!ovYR^|(=6!n;BFaZ^9f+{Fj3C3DD}(D?a* zJTu}M*`VO?M3A5KoMvxWi00JP)Y+xd!oPq2c-B+q1%Y@^_Rm3cKN3OfjRHjIK2)9q z&#nyo$VyD#fV$QBc*!Pl>-li>N?OmcH`tXu8un-3v&acB_+gRB_i};^h1SO2&=BCCp>LoG3>Lf% zdw$4r3FwV=ge>D3rQR>ian(P!L-8Y^_#gEu!{}C|Fmz$3VA3 zEJXr_Ndl|$@Cs;!^U^@=q#o8aW<>Q%57J|@$^o^InQ=r0*+cp8kTLYb@e(Cl?qp{A zp7t=`&q7LOB+_6^LS%NQH}v?pAs-=mGrt`6!&!mpv!qY5y7vf+$59MEz`N zH0(Ff5RhS`<020lGXUBkuoP-n?ajb9UeR!6`5GS|Pg{O~%z?Igm7R!RGzba^g@mnm zCzHTONTakX=1@kek0dSpSuFiSF2cdy&dv@)yc=n@OlT#*9dW1Y>8xW|jBacPjX9!W zJ2yAC8GrXz$rIl_`u?>@V?qc>AyktNa`z`3&zoa38a=U+b2@F)L%XLhjOy1G&zBmV zWFvYT07gN;JZV zOTEXIytHolwBG5fUXB-@2=>4dz#>P=gK_L5d03bFE{V#D)1i6Z4JA-fp=6_Aqa;5* z>=!iX0_j4V{KU$Oie!_Gdb9qN-j?P6dOG{vSR!ZWff$7fQPqqV)P_j~+`E1q0bs^s zg}|WJPn0Ce!CI6$la8$PmUbZ%-8MHcMiu1$&ruusiX>m#xs3HR3W5K215i=aRH&D; G4ErBmK7hOc delta 3359 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/static/img/openapi-connect-with-developer.svg b/website/static/img/openapi-connect-with-developer.svg new file mode 100644 index 0000000..3354ce9 --- /dev/null +++ b/website/static/img/openapi-connect-with-developer.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +