From 443c51239b3fc96c24944a7b61b7c5ead1454ccd Mon Sep 17 00:00:00 2001 From: lajbel Date: Sat, 10 Aug 2024 17:27:29 -0300 Subject: [PATCH] feat: icons, search --- .github/workflows/deploy.yml | 40 ++++++++ .gitignore | 3 +- assets/api_icon.png | Bin 0 -> 722 bytes assets/blog_icon.png | Bin 0 -> 748 bytes assets/controller_icon.png | Bin 0 -> 821 bytes assets/discord_icon.png | Bin 0 -> 693 bytes assets/donate_icon.png | Bin 0 -> 917 bytes assets/gh_icon.png | Bin 0 -> 846 bytes assets/guides_icon.png | Bin 0 -> 612 bytes assets/home_icon.png | Bin 0 -> 851 bytes assets/pog_icon.aseprite | Bin 0 -> 5892 bytes assets/pog_icon.png | Bin 0 -> 951 bytes assets/src/api_icon.aseprite | Bin 0 -> 754 bytes assets/src/blog_icon.aseprite | Bin 0 -> 728 bytes assets/src/controller_icon.aseprite | Bin 0 -> 763 bytes assets/src/discord_icon.aseprite | Bin 0 -> 695 bytes assets/src/donate_icon.aseprite | Bin 0 -> 897 bytes assets/src/gh_icon.aseprite | Bin 0 -> 868 bytes assets/src/guides_icon.aseprite | Bin 0 -> 721 bytes assets/src/home_icon.aseprite | Bin 0 -> 784 bytes assets/src/pog_icon.aseprite | Bin 0 -> 5892 bytes package.json | 7 +- pnpm-lock.yaml | 96 ++++++++++++++++++ src/components/Search/SearchDialog.astro | 19 ++++ src/components/Sidebar/Sidebar.astro | 39 +++++-- .../Sidebar/SidebarChangeLink.astro | 25 ----- src/components/Sidebar/SidebarLink.tsx | 42 ++++++-- src/components/Sidebar/SidebarList.tsx | 2 +- src/components/Sidebar/VersionSelector.astro | 2 +- src/layouts/Page.astro | 5 +- src/styles/base.css | 2 + src/styles/pagefind.css | 32 ++++++ 32 files changed, 265 insertions(+), 49 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 assets/api_icon.png create mode 100644 assets/blog_icon.png create mode 100644 assets/controller_icon.png create mode 100644 assets/discord_icon.png create mode 100644 assets/donate_icon.png create mode 100644 assets/gh_icon.png create mode 100644 assets/guides_icon.png create mode 100644 assets/home_icon.png create mode 100644 assets/pog_icon.aseprite create mode 100644 assets/pog_icon.png create mode 100644 assets/src/api_icon.aseprite create mode 100644 assets/src/blog_icon.aseprite create mode 100644 assets/src/controller_icon.aseprite create mode 100644 assets/src/discord_icon.aseprite create mode 100644 assets/src/donate_icon.aseprite create mode 100644 assets/src/gh_icon.aseprite create mode 100644 assets/src/guides_icon.aseprite create mode 100644 assets/src/home_icon.aseprite create mode 100644 assets/src/pog_icon.aseprite create mode 100644 src/components/Search/SearchDialog.astro delete mode 100644 src/components/Sidebar/SidebarChangeLink.astro create mode 100644 src/styles/pagefind.css diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..4769d2e --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,40 @@ +on: + push: + +jobs: + deploy: + name: "Deploy lastest (v4000) Docs on Cloudflare Workers" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Setup PNPM + uses: pnpm/action-setup@v4 + - name: Deploy app + uses: cloudflare/wrangler-action@v3 + with: + packageManager: pnpm + apiToken: ${{ secrets.CLOUDFLARE_WORKERS_KEY }} + command: pages deploy dist --project-name=kaplay4000 + preCommands: "pnpm i && pnpm build" + + deploylegacy: + name: "Deploy legacy (v3001) Docs on Cloudflare Workers" + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Setup PNPM + uses: pnpm/action-setup@v4 + - name: Checkout submodule to v3001 + run: | + cd kaplay + git checkout v3001 + cd .. + - name: Deploy app + uses: cloudflare/wrangler-action@v3 + with: + packageManager: pnpm + apiToken: ${{ secrets.CLOUDFLARE_WORKERS_KEY }} + command: pages deploy dist --project-name=kaplay3001 + preCommands: "pnpm i && pnpm build" diff --git a/.gitignore b/.gitignore index 81fa694..91b1730 100644 --- a/.gitignore +++ b/.gitignore @@ -26,4 +26,5 @@ pnpm-debug.log* doc.json kaplay/ -.wrangler/ \ No newline at end of file +.wrangler/ +public/pagefind \ No newline at end of file diff --git a/assets/api_icon.png b/assets/api_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3211e999c7d9405e3696c9afb4b04aabef7909dd GIT binary patch literal 722 zcmV;@0xkWCP)Px%j7da6RCt{2o3U#fF%-r>hpY``>*h?QkWxyAcJfk8@#Lj6Q}EC&;330J!AqfJ z%8()8&4cMw@Z!mY(xp>9m=bI#nUc+0A^ii~Nf-GnT~3PLlaAAGI_spn_kH)Ilg@WQ zBoc{4s!Ppx006LBtyV6MQ>)dC^%QF0DnJfQO?a?!nZyfBOvtUsC4O&r-^p=q{w~t( zq9$l7$>LoF$bqQ|TdKmcinl>&K$VCF_zu8^!{z}Fn+HygwQbXAfA2W}U~%(jW1mT2 zU%!7-mVbHra_x6-d1Vlt8CC{RkrmECDZ7A6q5-}G@J%$pcL2VL2KWxZH*E8OyB8;$ zg_?;FCoCDD6dwqc?*h>Pj+5-nPdQFwMdinUpjLxo*(+9sl*?cNc?RTN{r2&1WqEIT zr4{e$L5P6VfFh}{GeL!G@c^L#CjGvM30d*Fr%9#+GX@9~#^ z%2(X?D>y7;z%)tl=IjhWet(}P3EFjFeEWnWEC9qA(60YWx2H+6mJM0*_EAEX0kU`* zUqW>RITO^GM?sJVa1ssh9e{7F20_*9ab-pM+^nqc3fnvrRCWQmvCoAH2bCWKv<6fq z3m)~!Oi1H{P5%etM^nW=n=69}WS`CH2+0&1@eu(30bHuUPyKii9RL6T07*qoM6N<$ Ef`COxga7~l literal 0 HcmV?d00001 diff --git a/assets/blog_icon.png b/assets/blog_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..14089c35919dc5a45544ba80f9d129714bbca2dd GIT binary patch literal 748 zcmVPx%rb$FWRCt{2n^9^4F%X8w;stsG#g~HDD7`?TPkpK<5WzzT;tA?gp9)?;dJUm3 zqBrOfwhxje#>^%&nQW4Ezn8j85@-IM%xq!<(9_e?bH@x)8-P(&Ri$4K27@TJk_R;n zs|P|1#M+yEn%Z&j70j!Vv~g|X62d7!D(6R!)2r+A-+?_=lL(Ch*qk>FQ(y*S?ae+- z?KqhBU?QLb=*~+U*Cx6UHW8eOt7PXDO(Hy)jl1T&iyHy%jiG)K`{}q5UH}(EcasbI-4*}V#5g>tbM2`&9In3GlVkH()Nd(Xx3yCNR5rPHStd}?CM^y^x zaE(E*0LuB}X;$Bxj4$`5qo>f}QL>r>$I}cZ0ChiVI*W4V20ar0S8-z`a}RL2}(YN z)XU^n7ef+j18Kp61W2*ikz5J`1SG){R(d}4dxG4Kt~WPI-=>h3suCEiGMFQ+mO&~$ zPn)toAc=?o)E!^W__0I?PJ*RZgCeRx)>9y)8erqKiAWBhlr<``m*HYn;Bfw}KbN$3 zK>k0$lE`*LBqus6fX~whNcih874C@<@{yU)JP>lUMH-)jQ{Nc;l`pPx%?@2^KRCt{2nz3%%Fc5}+HeEVq2|Rf4mH-a)D&74AdI4`8yX6J^1ljv4MhrBY z2Mq$~lIN~Kb%R4SFviJ7zWuIswgYmG4~ zu}@+^j?fe&=42Z%wKxeJBg6)13SM2VldnC#99ZYYOkf+3BRofF3a&XJ6Icd>#7`|w zf^CG)gs1_o_;VIKM$Cku0k-&(!rNxUK6kgj7q=fW!D~PX@e-ja_{=G8fc6MV+S~s6 z1^~GG{wLUn&xBC}IO0=AQCe# zkGq};w(y^e20xzm(KbZ}xT9~6_Tl(@@O@6zFTG+AgCZE30(MZ8_CQ}efZq4MDKiE~ zG-biX;|>6Dx_bfuEVqmI|9`XKbagxEXRHv;G6ix*mxKfV#nbU}yTIw{R@7dy0d2GK zjwEHoRB4<;RtAtjcRFYbw~e;jUTznIDG*|Hx&Ai|x~}VtF{aoQ@CBXH4w*}zT@!NX z6~UA}fE^f};|86Y6>d8z?ZpaV(oS%Uw%Lq|2f*GS%>mnhk5JH3m}MDs>w~XeXig^| zYEyt{o6TTjloK?yM}OLx$S#7?j03hvtKiAaR?gg}#Kz9?Q zfqD^i(O&LHn~DIi|fDuJ1DKR zAVFlnRGo9sh$Ga0@gkTz|8r~7Y;TB2UR2`1jm2k@$~!_F6UGA2s{E;Msug`pET{7n zq_NEQo?yxKJ`{_z-{gv{6+op@sZ=VJ%3Qnwm3PvN>r6@N00000NkvXXu0mjfimQI> literal 0 HcmV?d00001 diff --git a/assets/discord_icon.png b/assets/discord_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..be8796d4c82dc86c1e7d793313f3684754ea4f90 GIT binary patch literal 693 zcmV;m0!safP)Px%Z%IT!RCt{2o6B*+Fc5|%CJoR5cP^=fS|}y8q!KQ^(}7EHPWH&M9{;`+8|$CR z3`1ZapS41=*3NZxb#--hb#--}Q~tjLplX_?X@2d!7ssy#APlVNkP&pvwgiL-0Gjm1 zDIs8r4-NokqfL6w@h?acfR!_AapKwlINH#! zDa;|Yie-&}PZ9~h5w3nJ#?mNQ0XX91C)G!m0A-|pSs0yVx%$%*41gl7wf}6#5`=mQ zXeA%pl-kWrgol~~EZ{Z)@E(WNpF}7Gv~0`)#0eumuNt6G?Yab7fG`JeyWT~MD(eN= z0zhjOn5#W12q`#JyDS0e?Kg@b092<|3l|H!W+UM7e5nR(1=VCJ94ZW)vyidg510c8 zwa5DjyPO1D>hu7blt5hjdnyHW0LVlq+0{u-ic*3~05xW@UA6WB&jBrx(-P&J@RE8n zw*xx@1Zs?%!$M?JBsr?4hv7))Imi~cPx&Pf0{URCt`#Tgy%DFc7sP8lVFZOG>#tu%U=s!z+T#?SWEQBItk;!s3x=@SVSB z>~JI`bd%U~&V2kyT+2kP>$-B+YppfghV%|FNW@!Y3NcgwEAbW?LJSiCBY$`M$UgJ= z^>+1Jv z2q^++$Wz2yP(nnB5H5g3UQ4_MCPah?i_01(yySbI~|3YX)IJ5vB;t(1U4l96${Oi-d{r}VDjNT)O z(6tuO?DA-epvTjYJOm{KwQg`l099SHhd_#Sdk-Z726F^h_x9dDp1X5dL%anh0u}}8 z2=HubmeOCyJmf7KEe}T@>(0D(co$|IFft>dIkIy0UGj=#Cwg0;OyekV2^;&K)7hnTM#=4mDfE57q%E;W!+82NzYXJ37 zIUmcLB0_=cu(~ z7oa5=;q{iZMFeWK2>(22x5O5>EhaT?>2$;>65*t!6#5&x`h)IX0+3aQ_7u2!Ynn)0 zih`&p(X{hx9&i+IkHpX~MIkI+_Iwf>{&LiUnM0nn@9qfDb~tM?h4l}kC?o|W5h(JW znOiheDNt*z+ve%#*BiPoH_~v8JrGB1 rp77I(@Mlhsw}do?AK~bHDW!Y^`QkRpK0a~?00000NkvXXu0mjfOVFcQ literal 0 HcmV?d00001 diff --git a/assets/gh_icon.png b/assets/gh_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b64de6896ca5f34e31d28157bb9d0295fe126993 GIT binary patch literal 846 zcmV-U1F`&xP)Px&2uVaiRCt`-TT70^APj}kT%b3|vQqAUlt^9X20cP%GgO3Pcs4eWywzx``15SQ z=Hs0Z$8j9tZ|}XA${7uj;j!~4VS|Wh2?pC>%K4MfPDE$~f@Nr|aCxks|L^ZDFWiU- z%^<)AQqIS)CW3OD3I?KAm4KWPCuKq+5XUL~HJy+_9Oo%RP=hGFF%TP25=;rm8B;ST zr&FpMA%SH`&VY4!I_I3*_7}?_4iLxJ<@sfUIRU}>7&Rg|B%qF$bk|5I5`acOhY}G8 z2{q>_-CPpH1W284MM-Z-KScsbK9sBvL@A?s|8Y+)&W{QL6BoH1kHwkMMGpE(}V!aZm?B$Jh>moahMK)6x=I z5P(J~p5RK8q$OYixa)6@gxrj;G1HeYv=pWgNRUKbyBt0d;Jx>uCEnj#bNbbqkrDGk z(}swo4AqR-rJA7_++7+XpXByex1oKA<)W3U1hSphN z`a6q&SYS^QxXyE~=ZOm;w1KhQAWcCvR;6os#bzj1%P)`hqa;>lRoA!PI;-7DRO<%0 zLqkIs1JUKt`WfK=!TF}C8A?g8=o@O^`v?;G5CJ74LN@fwi1c))MHZX^l1PrO z5D^p!NM~S;zFq=Loz)E3_E(mOyP(((=YU>K)h0=D6CA-$`f+WIO%2Iq$dy2DiOsmq zr%=m)oDk~+i&^kB38qZmoe1cd1W4;-h5v`9ho8Rz_gvN_h@!R3i(0Y#h Y2lAo%+<*4cPx%9!W$&RCt{2n?X*)Fc3v2hzqb|Nt7iLi>No@2)zbNu8||;CWr+R%cv~bafGl+ zWrE#!?D^xk_FGl0>&*YnjP1B4s#GeKO1U(t10W)r=XsXsr)e6t9j0c#Y+XK0oQ~Z+nc$H55a0cNfd9uZR!9_#{R%+ z|NQPUhkiXi0I|}b9uOi#W0y#EBIGM*>d4HV y&Ju*|2@usoQ~t;1axejQY|h1=ObHQRA);TH4%83Kc~C|G0000Px&4M{{nRCt{2TRTnzF%TUinsmtxR-();XlRhq=7?#LXlS?vCDPs?bd*bjR~yG; z&(~{2o)n3&u|4nkdF=Ii0dDx;2x~MtP1A&33n4U(sYzoc!X>m2!?gh^@f4myxKvyt zKJ51BwekFs{lAw8=9T8imk5`Tis2!GX@x0yDe)9bA*@9(t87W$iue*o=QWG=(MPYlL5)-m7(3Ize2ROFl>Z>vJ>zy?yw;xKvz8b|_g zlOH$3mxwN}c_c%#B$x)*bK+Z~n<20kOa$;=t$Csg2b6}3_fV<|&}z3QN3=yAF<%L4 zutwtSVhF4WwF5K>(Bpn#nx=`fL9&_yJnk1FIQIla0jzdjy)o?eR|%RLJ30ik+26z7 zwT;pkXWTEO42P@(EXn7-1K8{cVc^^%Upb)Fybs_z?G3v<$q5$@kdUW5$glv`&UiYg z>UEg~JnfyscshuMm<6cyeyM?6?@%{9m-zbJ%%4_ZIY4W-5+v&ai+D%^P#W^g1)g=Y zbAYD{)_`de)btdVI4N}w#}^omFQRtmxsjU$OAT7>5NWMXd4k;4en3R4wFN+OKEQJo zXmK)x1M2yKW&*T8?vQ2eX6Wi-&mzP;l*>O7@&L#YnI1);Bw@+1nQRgaA%rMGPT5qH z@pKSRLp6A>JJ59i_u!G{hNJ{cSgW?GBq@iVv0ymCa~y;@PBH|lE5Yy!a&!b}hl}NK zGg%7f0;&b6S-x6=+_Th~p)^%-FrGhHGm!M)B+J^G=}|+d)TZ{O3ijBRiVy>(l)+w` zsX>yf+|LRF(0dd6Ed|mvy{vlu9)Ov{%i)eT7rVdehpo1?uD dy5R;MegHUN)bS<6aP9yA002ovPDHLkV1i`!e#QU* literal 0 HcmV?d00001 diff --git a/assets/pog_icon.aseprite b/assets/pog_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..2923183914922ebf05e0744e4cb682bf9d76facb GIT binary patch literal 5892 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 literal 0 HcmV?d00001 diff --git a/assets/pog_icon.png b/assets/pog_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9ffdfeb1ac4d48f12fbc582a5bd89646680f51bb GIT binary patch literal 951 zcmV;o14#UdP)Px&aY;l$RCt`-TRm=DF$|^xqkFcZQ`RCtfd(0U1CO~y&X6%@@GU(01{sSM2w-IO z6lC+B<#kA8=*gr=ij>}SzA1T@DDo2}Q9le&iD4K90Dureu*!(A$f`wEgSp}WdgU=0 zHFB&_H%2Lb6v!Bm*T1^F1^|HlVJDX1iRxa%6dwsjjG&BDy9eZmy-C%1{Qe6703P0+$+{FgyrVe* zB}C&RYDh>?Lx|fD$c^F3V&ye5Fbtp2)L|K;1m<3lDv$MK3wR8XMf#7&gwxA-fN~rG z@L>-}LP!f+8lMw#B1$BnK}w1_8_GcvPlOh;yBC)075e?@ek+#2kuYll0B90YaD
<*UMIIno;-Uf?_mo271t~BcC@)|M&=^lOPANhG)1ws$ix9$*g#BT6 z()h#Mb1_2W6vGT&{k}W-w*9vm)#)`KT>y+-g6bix_qDy!6H?tolVH#2E<&>jvfvmB zb3-AArT0^Jr_gH%jP?Rr5+s;oY?0zi!~qtZ5FnWl&jHeS1oZ$52`yFzj~IZ0_!1)@ z%T_}vB`tDGhEtK?0xjJbB}Jd^w-<8iPEHmz)e$ zFN0bIsq&kfTiD#()~bPGf7pqS#k#}+CF8NbYk?UKAUG2&!8#96#>XAz&mZ4L-|znZ zIVqcylb6xlQ0JIr6-c+&FR$+-5;#x52+ESMicy-H^Z_$qq?3TM3=^ms^d)&zJwq%adunh5h{vUId2od>*eRvzFTF#-q);3h&% zSUkl6YYDUQfIK4X1u+4&UVw$mbMk`8JRl`us@?}s65#0t03RewX*@tj51>epY;IaY zO+bqiV+#q^V94DAxFvCJp3r0nv?Reh7;;H>seRDE9hFJF!m=qcJvMGhf(8}>nyvy8 zr5W@KTZXbUntv&!64(xe$CweU`1ffCm%*+;ff1b&d-IA2Oi15xN Z{SUbA6vlfKp#%T`002ovPDHLkV1irbn-Bm1 literal 0 HcmV?d00001 diff --git a/assets/src/api_icon.aseprite b/assets/src/api_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..ce2f7d321b365931deb1be8b2eb00eaa230dc23b GIT binary patch literal 754 zcmeyw#K7=iDIygigP`h=hGnhuZ|*(u|NsAWkN)>=|DW6Nt0nbKv+t2w z-35LUHS!>v6qu3h{tslcGx#J{rWPp};+HmZ20D>d0f-sc82$r&1_4G4mJAhh-rln2 zI&8qh_CRK#`HOoipTCHx>h+V{{Uqt`ZRICgu~9+>Ea82BCZwM9_~7ipbZI(!%Y(!R zYxM&Qzdl?c$FnXtvX>tox#1*#^^Ded{3Q?0{i9X`92H*LbR2A+*Cj|wIm zwp%W-`gW;%acWI_nD=?U-f0t*x|4RC*`J}H4 lUmsWX_q(UMyysw0kKmPVUw*s4Emx8+cYDh**yr4z0sy%x{2>4U literal 0 HcmV?d00001 diff --git a/assets/src/blog_icon.aseprite b/assets/src/blog_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..6e0e046e7c19b639dc6ca20aad642a3be7a851c4 GIT binary patch literal 728 zcmcb?#K7=iDIzb#DJJx0c<6b zby+|*3&?c}(aTD+Pv)$?oAT#<@BbZ@uac6^IK?g2h$s~gv*dJ7ln87$4P6!*f3mpv z)4G}e4}W^sfBH(^=61Ulc>ygigP`h=hGnhuZ|*(u|NsAWkN)>=|DW6Nt0nbKv+t2w z-35LUHS!>v6qu3h{tslcGx#J{rWPp}t^~S)Re^zliGh{jKhWtAV8vj?P%-E2jf1&P zhCFNuZZFvO7AN(|X>WVEl-nTaeeA;El14ArRa3YY9VvWs zAi6*D%)a{7eYbx6k;$5);&w}kW!J}_FDs_cnjrD{_x4vSde5I*K_^*N$!fY+W6b-&gkSj(gC0HA}xj&Gwbbx~P}>{F=Ma()9X* zHPg;r`nqys;M|v==f6K)zbtv0-}}^RO=**{d6jkbwH0Z1r_H&RJ^gmEPIc~jVZ(`Y zZq>fro9BM*?cH{pf5A8WVwNA9HUIYJ<;q_cUj40`Zl_{>y(b#9j6UCrJ*7N@#IOp{ManMS#VXm8K+TyWJ`Y27cU GwT1v_{~l2Q literal 0 HcmV?d00001 diff --git a/assets/src/controller_icon.aseprite b/assets/src/controller_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..75fd6e7f707e2b4a37a3b6afd84d66b1ccf7dbf3 GIT binary patch literal 763 zcmey(#K7=iDIzb#DJJx0c<6b zby+|*3&?c}(aTD+Pv)$?oAT#<@BbZ@uac6^IK?g2h$s~gv*dJ7ln87$4P6!*f3mpv z)4G}e4}W^sfBH(^=61Ulc>ygigP`h=hGnhuZ|*(u|NsAWkN)>=|DW6Nt0nbKv+t2w z-35LUHS!>v6qu3h{tslcGx#J{rWPp}o&manRe^zlnSqPpKhWtAV8futP%-E3jkB4| zh61b!(x;Gjs;Y9=+CJu5|J_eNENj`di8o(uedbfvTZGJj)YUTX@yRZM+^T}*_Vv6iscGJasRuspr&%Nt^@^s`< z%h%^!jEcfqB%ivb-D%ox^!VPMlGvBB0ynqktXErnboI~QIr%2atCY__kDU4a(c9FC zQkB#9{?AUiDez1(Zpqcp>poNoe$PA~ms{qWS~;=&R`%^~^PtUpZbeSp{PoYh{u2Q& zWhEEy=dLzh@cmlW*$+jMOCs;s9JyI_X4?0Lzb#DJJx0c<6b zby+|*3&?c}(aTD+Pv)$?oAT#<@BbZ@uac6^IK?g2h$s~gv*dJ7ln87$4P6!*f3mpv z)4G}e4}W^sfBH(^=61Ulc>ygigP`h=hGnhuZ|*(u|NsAWkN)>=|DW6Nt0nbKv+t2w z-35LUHIg8k6qu3h{tsj`G9>f?ZD&z=!n_3XkE&sRl1 zJdL&d!;0eqrx*?=Spr~^iC`6d)k@E*UztiPF*cCb61CD zR<7jLXF0j;=8sbD`rPfgnOK_lY-gX%@y)fTtna}z{|-~AV! ze|pZ>RnOl1SZjFuw3Y1UvdXJrPtWu}ySg{0PwRc*S)=d@!PhUgzJFDkR=B@DaQ*AL zP+O7tk&AcknH`>(x@V@GpYiO2FGF{W?$zG2Cidp~ThV*<-#;y_NI$#&(CZ&^PMfxz zbK85-E>C;5>f_!okw>jJt@`I4d9b={+0)XQ7oToRJG1wn@tzf;hVsQ4?iNvDim7`SrK$LD*?;JCRP{5DbvgA%eIj3mv);Ru-TIVnEEU0Jajz zx-1}@1>`z~=w+qZCv#TcP5JY__y3N{S4l}{oZ=R1M3jn$S#r83N(8o>hAs<@KUrM- zY2D2Khd;gRKYb-{bGu!OynvRMK~Qx_!?M=-H}{_S|NsBGNB?`b|Icms)sp(A+4o4T z?gBrF8by#z3P4A}!G9o&lff+~v7{t5FEu5AiGhJt0V4Y!$c6w=@KwyYd*iI{5d#6% z2fB@XJAzqM16hUCS1lC%wSZA&!h~tgPbBwOexBX)(5KC9VHZp8g=R z`dI%z{S~JcTw4EE|BaRKroSt8YB%fHzg~Av;c)*AyLh{Q?(S@>jmzr0>uz5jmF z`H1B!WF+jf&fi)*Q8MDY!&2Kr`(Gb@GI|ASMUA)o4jomtK&Z@UXS3J{MTK6*2Jy# z{c~TsSGRrX4cGoQcXQf-chSf6QyXfeSAN?3y75=P-`N6 z{jWCc|6RMg`8&VgFn-j($++&wyr0D4Wtn!~|F7{}__z8^23rt+PF_y_#k@>8?|;*NZ{ig^ V`lVj<_ud)%mfxsnG+th_3;@mud1?Rv literal 0 HcmV?d00001 diff --git a/assets/src/gh_icon.aseprite b/assets/src/gh_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..3e590b1059281333916a10df4ecf21a528fe42ce GIT binary patch literal 868 zcmYdcW?*=*l##&!2o)F@85kH+fEWRQVjw{V0U)FWc*4ZM@arQB*j5&x1!6$Vt^l?Y z$+|2cn+4=Lh3I9a*(Y;W-%a`RzW4u*%2!EAXPn{|YebZahgovECrSjin}#k6jXzmj z{Au0H|A#-l>py)ZZ*#j{i@boAmqAcz`QqLVa^s zDc{Yn{ib&I`~H=u%13Thtxn^+^m(aVKlf* z()oS<`}^$b^UZ0Q^K4%=zOBFAFFmvIn(b=YlL=Q(pICpAF>(8quW1Rj->2<!Wz}l1_k!2zJL2NnuOBIb?Jh(2g z*3#ge!?yds%eU9-?@#&sOLuR{$Nrk|uhr)ouEjldPu(!CdDOku>H0QpkQc{lm^ zerL8>k&AYIpLKt8y4aygigP`h=hGnhuZ|*(u|NsAWkN)>=|DW6Nt0nbKv+t2w z-35LUHS!>v6qu3h{tslcGx#J{rWPp};+Hns4^+#l0K^Pz4F7>Xg8(B2ONNR$Z*Mtr zH7E$QCiY+8z2$cNg~-}nG1p)Eu{sJY%v_PY_M1-AB#-iZCfktL9W6SdmXODfW3dhgg3R8M}{!>qnXVl~8 zHtW`lFP?gI;mwm}GMjE5aeVpNuG~D3eX8?fi;#_>?OFfMI3^0O56tcNztMGgO__Q8 zPxlu-nQKq4zjg5LpR0TpaVh_d?dJ9xo#(iJbERl?Df`-Qs?D(n!=J@HT<}h&wpms$ qHGO|8pY>_QLwy!s_Vpf?v%KJPBe0!k+v^D@)%dnN=Rf)4$ut1|1@Z0x literal 0 HcmV?d00001 diff --git a/assets/src/home_icon.aseprite b/assets/src/home_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..92e65959eccb7d909166cb1a1b5dbb52474ac04e GIT binary patch literal 784 zcmWe&W?*=*l##&!2o)F@85kH+fEWRQVjw{V0U)FWn83uq@arQB*j5&x1!6$Vt^l?Y z$+|2cn+4=Lh3I9a*(Y;W-%a`RzW4u*%2!EAXPn{|YebZahgovECrSjin}#k6jXzmj z{Au0H|A#-l>py)ZZ*#j{i@boAmqAc7?^aPPMZtwzpaFG6&yJQ5|8zRLY~5mh`8E%Mpe_2#~qSC67Q4;dYD z`urwm>#kka>0j;a_jcU8d!kAr+kE!brIyw=7RAK&+}t+RZT;J~ulKIKnDqN=#?7NA zZn;gn{`z?QrgJ{Z$&-JTY>DiVt+{3AQls4?Xm)J5WcbfCvy^{fUkp~2PkZwyxq9>B z{+Vm_+_K+G%>P=su{nRsvpssJ(=Ef5a#n0S^nB*(_WZTytM&es%UA77`LXG{+UJ@Z zciW#F7JuD+t3S~0+Ki{0_Z?QWyHXK%`D*%0Wux+0`C;3SF28#4jB?iGnvAy-_d56X zoPC`<`D1U-8egNdA1;UAZoZR#vs&)H?Zo2HO_|?M7WXaszU0tyN#)!R<%bVG`+J|v8CJfbw#c}O%{h8_ELU5xo2Lr&fj@o-M;u2Rn@+*xmfG>sq)p` zqvEme-&jpFyCxC4epkL<;?~OEGg8?Vxnat;y7{(E+_>r<*Y!75o2%At3l+TCowqHy MWc_#c#}Z!G0a8ytm;e9( literal 0 HcmV?d00001 diff --git a/assets/src/pog_icon.aseprite b/assets/src/pog_icon.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..2923183914922ebf05e0744e4cb682bf9d76facb GIT binary patch literal 5892 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 543d4a7..03d64f3 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "install": "git submodule init && git submodule update && cd kaplay && pnpm i", "dev": "npm run doc && astro dev", "start": "npm run doc && astro dev", - "build": "npm run doc && astro check && astro build && npm run lunaria:build", + "build": "npm run doc && astro check && astro build && pnpm run pagefind:build && npm run lunaria:build", "preview": "astro preview", "astro": "astro", "doc": "node scripts/buildDoc.js", @@ -18,7 +18,8 @@ "cf:deploy": "npm run build && wrangler pages deploy dist", "cf:preview": "wrangler pages dev dist", "f:dev": "astro dev", - "f:build": "NODE_ENV=fastproduction astro build" + "f:build": "NODE_ENV=fastproduction astro build", + "pagefind:build": "pagefind --site dist" }, "dependencies": { "@astrojs/check": "^0.7.0", @@ -34,6 +35,7 @@ "@types/node": "20", "astro": "^4.10.3", "astro-meta-tags": "^0.3.0", + "astro-pagefind": "^1.6.0", "astro-robots-txt": "^1.0.0", "dprint": "^0.47.2", "marked": "^13.0.0", @@ -48,6 +50,7 @@ "clsx": "^2.1.1", "daisyui": "^4.12.2", "dts-bundle-generator": "^9.5.1", + "pagefind": "^1.1.0", "shiki": "^1.9.0", "tailwind-merge": "^2.3.0", "wrangler": "^3.58.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 38e2238..5b0287f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,6 +47,9 @@ importers: astro-meta-tags: specifier: ^0.3.0 version: 0.3.0(astro@4.10.3(@types/node@20.14.8)(typescript@5.5.2)) + astro-pagefind: + specifier: ^1.6.0 + version: 1.6.0(astro@4.10.3(@types/node@20.14.8)(typescript@5.5.2)) astro-robots-txt: specifier: ^1.0.0 version: 1.0.0 @@ -84,6 +87,9 @@ importers: dts-bundle-generator: specifier: ^9.5.1 version: 9.5.1 + pagefind: + specifier: ^1.1.0 + version: 1.1.0 shiki: specifier: ^1.9.0 version: 1.9.0 @@ -996,10 +1002,41 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@pagefind/darwin-arm64@1.1.0': + resolution: {integrity: sha512-SLsXNLtSilGZjvqis8sX42fBWsWAVkcDh1oerxwqbac84HbiwxpxOC2jm8hRwcR0Z55HPZPWO77XeRix/8GwTg==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.1.0': + resolution: {integrity: sha512-QjQSE/L5oS1C8N8GdljGaWtjCBMgMtfrPAoiCmINTu9Y9dp0ggAyXvF8K7Qg3VyIMYJ6v8vg2PN7Z3b+AaAqUA==} + cpu: [x64] + os: [darwin] + + '@pagefind/default-ui@1.1.0': + resolution: {integrity: sha512-+XiAJAK++C64nQcD7s3Prdmd5S92lT05fwjOxm0L1jj80jbL+tmvcqkkFnPpoqhnicIPgcAX/Y5W0HRZnBt35w==} + + '@pagefind/linux-arm64@1.1.0': + resolution: {integrity: sha512-8zjYCa2BtNEL7KnXtysPtBELCyv5DSQ4yHeK/nsEq6w4ToAMTBl0K06khqxdSGgjMSwwrxvLzq3so0LC5Q14dA==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.1.0': + resolution: {integrity: sha512-4lsg6VB7A6PWTwaP8oSmXV4O9H0IHX7AlwTDcfyT+YJo/sPXOVjqycD5cdBgqNLfUk8B9bkWcTDCRmJbHrKeCw==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.1.0': + resolution: {integrity: sha512-OboCM76BcMKT9IoSfZuFhiqMRgTde8x4qDDvKulFmycgiJrlL5WnIqBHJLQxZq+o2KyZpoHF97iwsGAm8c32sQ==} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} + '@polka/url@1.0.0-next.25': + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@qwikdev/astro@0.5.16': resolution: {integrity: sha512-eGpieVOLdO9H96+d/OY684GPYPjhyuSupsPeM829EA/Giwtbb1zXoLC+sUNYhqlyA/bSFjdUv/fwryOPpPfChw==} peerDependencies: @@ -1279,6 +1316,11 @@ packages: peerDependencies: astro: ^4.0.0 + astro-pagefind@1.6.0: + resolution: {integrity: sha512-U/WuE0ktkZkoFJf6yopWO4DjIJ3+wrnopE2L3kUYiyqNTJpqmp13bFLR8gir6B+KzQ5dsXQtJZYTQtKJg1FxIA==} + peerDependencies: + astro: ^2.0.4 || ^3.0.0 || ^4.0.0 + astro-robots-txt@1.0.0: resolution: {integrity: sha512-6JQSLid4gMhoWjOm85UHLkgrw0+hHIjnJVIUqxjU2D6feKlVyYukMNYjH44ZDZBK1P8hNxd33PgWlHzCASvedA==} @@ -2337,6 +2379,10 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + pagefind@1.1.0: + resolution: {integrity: sha512-1nmj0/vfYcMxNEQj0YDRp6bTVv9hI7HLdPhK/vBBYlrnwjATndQvHyicj5Y7pUHrpCFZpFnLVQXIF829tpFmaw==} + hasBin: true + parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -2666,6 +2712,10 @@ packages: simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} + engines: {node: '>= 10'} + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} @@ -2793,6 +2843,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} @@ -3970,9 +4024,28 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@pagefind/darwin-arm64@1.1.0': + optional: true + + '@pagefind/darwin-x64@1.1.0': + optional: true + + '@pagefind/default-ui@1.1.0': {} + + '@pagefind/linux-arm64@1.1.0': + optional: true + + '@pagefind/linux-x64@1.1.0': + optional: true + + '@pagefind/windows-x64@1.1.0': + optional: true + '@pkgjs/parseargs@0.11.0': optional: true + '@polka/url@1.0.0-next.25': {} + '@qwikdev/astro@0.5.16(@builder.io/qwik@1.5.6(@types/node@20.14.8)(undici@5.28.4))(astro@4.10.3(@types/node@20.14.8)(typescript@5.5.2))(typescript@5.5.2)(vite@5.3.1(@types/node@20.14.8))': dependencies: '@builder.io/qwik': 1.5.6(@types/node@20.14.8)(undici@5.28.4) @@ -4251,6 +4324,13 @@ snapshots: dependencies: astro: 4.10.3(@types/node@20.14.8)(typescript@5.5.2) + astro-pagefind@1.6.0(astro@4.10.3(@types/node@20.14.8)(typescript@5.5.2)): + dependencies: + '@pagefind/default-ui': 1.1.0 + astro: 4.10.3(@types/node@20.14.8)(typescript@5.5.2) + pagefind: 1.1.0 + sirv: 2.0.4 + astro-robots-txt@1.0.0: dependencies: valid-filename: 4.0.0 @@ -5742,6 +5822,14 @@ snapshots: p-try@2.2.0: {} + pagefind@1.1.0: + optionalDependencies: + '@pagefind/darwin-arm64': 1.1.0 + '@pagefind/darwin-x64': 1.1.0 + '@pagefind/linux-arm64': 1.1.0 + '@pagefind/linux-x64': 1.1.0 + '@pagefind/windows-x64': 1.1.0 + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 @@ -6179,6 +6267,12 @@ snapshots: is-arrayish: 0.3.2 optional: true + sirv@2.0.4: + dependencies: + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 + totalist: 3.0.1 + sisteransi@1.0.5: {} sitemap@7.1.2: @@ -6327,6 +6421,8 @@ snapshots: dependencies: is-number: 7.0.0 + totalist@3.0.1: {} + trim-lines@3.0.1: {} trough@2.2.0: {} diff --git a/src/components/Search/SearchDialog.astro b/src/components/Search/SearchDialog.astro new file mode 100644 index 0000000..c6278fb --- /dev/null +++ b/src/components/Search/SearchDialog.astro @@ -0,0 +1,19 @@ + + + + + + diff --git a/src/components/Sidebar/Sidebar.astro b/src/components/Sidebar/Sidebar.astro index 7e9d989..797d7a6 100644 --- a/src/components/Sidebar/Sidebar.astro +++ b/src/components/Sidebar/Sidebar.astro @@ -1,12 +1,10 @@ --- -import kaplayPackageJson from "@/../kaplay/package.json"; import kaplayOutlined from "@/assets/kaplay-o.webp"; import { $lang } from "@/stores"; import { t } from "@/util/i18n"; import { getLangedRoute } from "@/util/path"; import Image from "astro/components/Image.astro"; import { getBlogEntries, getDocEntries, getGuidesEntries } from "./entries"; -import SidebarChangeLink from "./SidebarChangeLink.astro"; import { SidebarLink } from "./SidebarLink"; import { SidebarList } from "./SidebarList"; import VersionSelector from "./VersionSelector.astro"; @@ -71,11 +69,19 @@ else if (sidebarMode === "blog") { /> +
+
+
    - { + { t(lang, "sidebar.home") } Discord @@ -91,6 +98,7 @@ else if (sidebarMode === "blog") { target="_blank" lang={lang} noTranslate + icon="github" > GitHub @@ -98,6 +106,7 @@ else if (sidebarMode === "blog") { href="/changelog" lang={lang} noTranslate + icon="pog" > What's new on v4000 @@ -106,6 +115,7 @@ else if (sidebarMode === "blog") { target="_blank" lang={lang} noTranslate + icon="controller" > {t(lang, "sidebar.playground")} @@ -114,21 +124,28 @@ else if (sidebarMode === "blog") { target="_blank" lang={lang} noTranslate + icon="donate" > Donate to KAPLAY
    - { - t(lang, "sidebar.guides") - } - { - t(lang, "sidebar.refdoc") - } - { + {t(lang, "sidebar.guides")} + {t(lang, "sidebar.refdoc")} + { t(lang, "sidebar.blog") - } + }
- - - - diff --git a/src/components/Sidebar/SidebarLink.tsx b/src/components/Sidebar/SidebarLink.tsx index 6992b6e..9fc19e2 100644 --- a/src/components/Sidebar/SidebarLink.tsx +++ b/src/components/Sidebar/SidebarLink.tsx @@ -1,12 +1,15 @@ +import apiIcon from "@/../assets/api_icon.png"; +import blogIcon from "@/../assets/blog_icon.png"; +import controllerIcon from "@/../assets/controller_icon.png"; +import discordIcon from "@/../assets/discord_icon.png"; +import donateIcon from "@/../assets/donate_icon.png"; +import githubIcon from "@/../assets/gh_icon.png"; +import guidesIcon from "@/../assets/guides_icon.png"; +import homeIcon from "@/../assets/home_icon.png"; +import pogIcon from "@/../assets/pog_icon.png"; import type { Locale } from "@/util/i18n"; import { getLangedRoute } from "@/util/path"; -import { - $, - component$, - Slot, - useSignal, - useVisibleTask$, -} from "@builder.io/qwik"; +import { component$, Slot } from "@builder.io/qwik"; type SidebarLinkProps = { href: string; @@ -14,6 +17,23 @@ type SidebarLinkProps = { lang?: Locale; noTranslate?: boolean; reloadAll?: boolean; + icon?: keyof typeof icons; +}; + +const icons = { + "home": homeIcon, + "github": githubIcon, + "discord": discordIcon, + "pog": pogIcon, + "donate": donateIcon, + "controller": controllerIcon, + "blog": blogIcon, + "guides": guidesIcon, + "api": apiIcon, +}; + +const dataReload = { + "data-astro-reload": undefined, }; export const SidebarLink = component$((props: SidebarLinkProps) => { @@ -29,7 +49,15 @@ export const SidebarLink = component$((props: SidebarLinkProps) => { target={props.target} data-link={props.href} aria-current="false" + data-astro-reload={props.reloadAll ? "all" : undefined} > + {props.icon && ( + Home Icon + )} diff --git a/src/components/Sidebar/SidebarList.tsx b/src/components/Sidebar/SidebarList.tsx index 0c5c299..ad7ed32 100644 --- a/src/components/Sidebar/SidebarList.tsx +++ b/src/components/Sidebar/SidebarList.tsx @@ -48,7 +48,7 @@ export const SidebarList = component$( class="input input-primary w-full my-2" placeholder={sidebarMode === "reference" ? "Search for API..." - : "Search for Rguides..."} + : "Search for Guides..."} bind:value={filter} ref={searchInputRef} onKeyPress$={(e) => { diff --git a/src/components/Sidebar/VersionSelector.astro b/src/components/Sidebar/VersionSelector.astro index 3efd596..5f89202 100644 --- a/src/components/Sidebar/VersionSelector.astro +++ b/src/components/Sidebar/VersionSelector.astro @@ -6,7 +6,7 @@ const selectedByDefault = kaplayPackageJson.version.startsWith("4") : "v3001"; --- -