From 984e41b7718c436cfd82f716a30df113585d9084 Mon Sep 17 00:00:00 2001 From: RGBCube Date: Tue, 9 Jan 2024 13:32:20 +0300 Subject: [PATCH] Delete old code --- .gitignore | 18 --- src/asset.rs | 68 ---------- src/main.rs | 58 --------- src/page/BaiJamjuree700.woff2 | Bin 10656 -> 0 bytes src/page/cube/cube.css | 108 ---------------- src/page/cube/cube.js | 228 ---------------------------------- src/page/cube/mod.rs | 28 ----- src/page/icon.gif | Bin 82837 -> 0 bytes src/page/mod.rs | 69 ---------- src/routes/index/index.css | 68 ---------- src/routes/index/mod.rs | 46 ------- src/routes/mod.rs | 2 - src/routes/not_found/404.css | 29 ----- src/routes/not_found/mod.rs | 41 ------ 14 files changed, 763 deletions(-) delete mode 100644 src/asset.rs delete mode 100644 src/main.rs delete mode 100644 src/page/BaiJamjuree700.woff2 delete mode 100644 src/page/cube/cube.css delete mode 100644 src/page/cube/cube.js delete mode 100644 src/page/cube/mod.rs delete mode 100644 src/page/icon.gif delete mode 100644 src/page/mod.rs delete mode 100644 src/routes/index/index.css delete mode 100644 src/routes/index/mod.rs delete mode 100644 src/routes/mod.rs delete mode 100644 src/routes/not_found/404.css delete mode 100644 src/routes/not_found/mod.rs diff --git a/.gitignore b/.gitignore index 0bbb035..d50efa7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,6 @@ * -!src/ -!src/page/ -!src/page/cube/ -!src/routes/ -!src/routes/index/ -!src/routes/not_found/ - -!.gitattributes !.gitignore -!Cargo.lock -!flake.lock - -!*.css -!*.gif !*.html -!*.js !*.md -!*.nix -!*.rs -!*.toml -!*.woff2 diff --git a/src/asset.rs b/src/asset.rs deleted file mode 100644 index d9f6c43..0000000 --- a/src/asset.rs +++ /dev/null @@ -1,68 +0,0 @@ -use axum::{ - body::Body, - http::header, - response::Response, - routing, -}; -use bytes::Bytes; -use minify_js::{ - Session, - TopLevelMode, -}; - -fn route(path: &'static str, content: Bytes) -> String { - crate::route( - path, - routing::get(async move || { - Response::builder() - .header( - header::CONTENT_TYPE, - mime_guess::from_path(path) - .first_or_octet_stream() - .to_string(), - ) - .body(Body::from(content.clone())) - .unwrap() - }), - ); - - format!("/assets/{path}") -} - -pub(crate) fn __register_asset( - path: &'static str, - min_path: &'static str, - content: Vec, -) -> String { - let (minifiable, minified_content) = match path.rsplit_once(".").unwrap_or_default().1 { - "js" => { - let mut minified = Vec::new(); - - minify_js::minify( - &Session::new(), - TopLevelMode::Module, - &content, - &mut minified, - ) - .unwrap(); - - (true, minified) - }, - _ => (false, content.clone()), // TODO: Minify CSS. - }; - - if minifiable { - route(path, Bytes::from(content)); - route(min_path, Bytes::from(minified_content)) - } - else { - route(path, Bytes::from(content)) - } -} - -#[macro_export] -macro_rules! asset { - ($path:literal) => {{ - crate::asset::__register_asset($path, $path, ::embed::bytes!($path).to_vec()) - }}; -} diff --git a/src/main.rs b/src/main.rs deleted file mode 100644 index e0483d7..0000000 --- a/src/main.rs +++ /dev/null @@ -1,58 +0,0 @@ -#![feature(lazy_cell, async_closure)] - -mod asset; -mod page; -mod routes; - -use std::sync::LazyLock; - -use axum::{ - routing::{ - self, - MethodRouter, - }, - Router, -}; -use tokio::{ - net::TcpListener, - sync::Mutex, -}; - -pub(crate) static ROUTER: LazyLock> = LazyLock::new(|| Mutex::new(Router::new())); - -pub(crate) fn route(path: &str, handler: MethodRouter<()>) { - let mut router = ROUTER.blocking_lock(); - - *router = router.clone().route(path, handler); - - log::info!("Registered route {path}.") -} - -fn not_found_handler(handler: MethodRouter<()>) { - let mut router = ROUTER.blocking_lock(); - - *router = router.clone().fallback(handler); - - log::info!("Registered 404 handler.") -} - -#[tokio::main] -async fn main() { - env_logger::builder() - .filter_level(log::LevelFilter::Info) - .target(env_logger::Target::Stdout) - .init(); - - route("/", routing::get(routes::index::handler)); - - // not_found_handler({ - // routes::not_found::init(); - // routes::not_found::handler.into() - // }); - - let listener = TcpListener::bind("0.0.0.0:80").await.unwrap(); - - let app = ROUTER.lock().await; - - axum::serve(listener, app.clone()).await.unwrap(); -} diff --git a/src/page/BaiJamjuree700.woff2 b/src/page/BaiJamjuree700.woff2 deleted file mode 100644 index e14827bfc9224f1ba95f5fb72c4fac09ba67ceca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10656 zcmXT-cQayOWME)m&|JX42cnaAFfeGkL&QLQR4f%Cz1B>oIfyNRp_N0BgX^2gy=d;{ zG6qI7CKcxP3>F2}7B=>_1nEy9te11=op{W!>LFVoi!}QLlLtQo15eF3)BInbGpa{1 zL3aJN&Xx|2{Pw_^8`)%TZhQ)$lKkC(UJ)|Fzf|Nt}CrH{^Dj=)cWjpPs!; zc2Aw^!xC52a?I|eYGu>0kN?xt=6_Ih7YKAP+O+v`Z+s_5?5&4CbHCXsX()+lXnkaK zbO>>ASmG5R;^KOgDV5F5FlATqTZvw&|ayRL4V+S6uwIwyANcJroSh9BEnY_^y!JhFDxGu4f4 z&o@=p3NzZj(_4OuDUw4+_2@BKV{XpX$(4%gcXzqP@?ZIS_GHA%;UUo_*+`NLu^ zYRikYecZDP5{_$dh2Gg@k*C&eIl)D!EBWr;*Xwh_cFw&WExz{Yt)1!@6s6965tfU7 zzqkCq+_X)*Lt|rKUF~tZ6}Y-R%u3>|PG;cw%dZ-z^)alemy57qm{rYWaK6ex+Tzc4 zU#9oGm#bgDeLlb5Z`tjg61E34E-HC%5dPN4CgBp;S152WM`tU0Utg=oqt<6v@BWAr zPrdbc(uBQfVJaRI6qG)_{JQOT#N}O%+h^q{-$)4H;b>0yd$+!kDT1}(kkcuKlT$b+ zo#hEy!gXY&5dZ=xfNr|WuLTdcewYFkAo$`adq5{iSE&-7~gAcU(bEO zeCw{;401vV|MUeyieGGHe0-|=_bvuG$spMYwvN&^ya57A3fJr9F5gJA==h-6_->kz zh6@9SdXo7;BytYU?9{r(SPES z+x?2l;(mocFHYfkBx>LtaO71BuZfrDW$pEW+)MqKnWl?zhOsaS&ss27sN{l6>}~hg z*YunElg=)m_~&-NX+k4M^X%h}4zm|=+}1dx*R`eo_rpGGRwM7jb9S#w6zG2M$mH!G z+r+?miIM4BP5ENuB*l3gi-qSi-@U2THSM*uRq9`Z9c;Rb7jM>iEPCwP=N|Xu*T)|= zoM{NWsi}BJQ7A^FAo*~s<@75Jrxu8{-(RHBu;ov9TJ5Zh%^y0PC2##wh_aTrVtiQS z)Jnr8dVJ@+Mek`gy}W%wK)=D{&8%NVEECp;PUe_zDraGFa?U_cK znXwN-KHP9iUZ7zd#2@)E&GN#_|LyT#So0O1_XzwxP<^}p@4NlQ!rnzT#y6B*UXY`pZUE-3K?4o&-_XM=Bcs1*f=b|O;DF%)`t;YT(mlbyK9`2iPsw*&7 z=efcafo)3j&mP+PVBgAXYJb|;-6k_{;h1Rf$fdJga?J-v&$s~lX|og>Q{{EPdb!N8 zu77&`^Dn*y?A5PBGB(#{^K98+dq?G^&hq_zBHlea7i#O?-IDzy_EOQLrnfs4C4X(W zcx(Uc(gnTh=NC@DV{+Ez;lqTaSEgqYuE|XL#%sFt?l&JVN9BgEzL$1gQP$TMwtw)g zaP^Cak?l`6cd9x({JU@VMfR9q|64fY1PWu>-#>ABa^Y*)2S3%?hhi&UEcbM9sbJ2r zuehn&yt^X9+xyj275=c!&926Jf;TeVr*HTtlkxb>h0G>p4(I3S^2#k~`B_}OzQ;j!ap}UTfnOZfE?98?$H$B>2lp&EyJ?Z( z#x?8Bi{GdgXFPskX>l*0y_alxm`!SoB8&9#~sNNuhw5}vE8V4{hz+sx{BM1 zGC@AON>$%FI!2in&u(TL>JWN`k;&|Bq z6Q9vbza<_Ug*k7$kg!l{+tS(TBGlQ!qa9^4N93aP)uiA#OE>Ctr@8uQH?w*hhc40; z%+bF1Pcbh(NHD?WU`;pEL7@)Thb;^}uPr3*58o|8kUUsXU~f9|n=FCEz9B)r&Xe^|-U9-!FJ{%4x%o{$JRu7m#JS!SNg z#l2kY8Q&>#9dbTU#`*m2CyvCG+quP>c!fSNOy@XJd8$zO#~ahQx7`e9KR@AD$Vw0t zn|9FdRDt&j4$(;*#w!vFIZ`IxJiSj^^jW$&(t*Hc~fcqeSQ)7|h&sA<=S>rW5GbuSipWGxo4Do~eQT2)bx z%TOc)>YnY|Z#`h^?|@2;(8RFV35ze|?w!s6#IZ%5s6xOx5V6-Jd)UJP1` zgqptebbm0Mkhq6KfQ!Y3$NP#~QMtmF&B_O|Hl=XgvtbfDbtpBP$5CUo(AJN~zjKCr zboQ!z%e!gbdNY4%@%;s1E(aVdZBK=7j5!u!zP?gZWtYfDgSh0$;dgu$%&T^~*l&~w z-*=@*IiSI-Sy1eBMdX5X8KxdTjx!T9+b@b7_$I3nlj=KHl<&*KFh;)vug_SroMec2 z*17G`k_&YfMk3pJP%|DUi-n;BlGwwRX)r{?XUcYGPXz%{z!vEr%uO`$4 z1^cO}e>*qjh5@76p(U}x2Y&89e&&y80T;t$#t;AFG*0YgVz9UWk@Dl@MD^A4Zp;su zpYyfi;l`gEUtYZFzMO$2A^*V3cdU#K^Uhf@oOoP0^S}L_#NFE8c0OF!zRv2!guVAR zA1w_2HhbGub-Pa+=gK)8>Jn4-TcqN0Qe#Cz36IarO&^~MoKT(U@8$Mz1#{od$6M}e zNQxS0Ck3Bc=VQ8Ds`S;)EuXTkFZ4E_|ML$UkJTG(_d7*r`L6HHJ!ie|+l}?}Do(O) zpZj6u{n~fSOyj;yb}##Vb4jB3-lWChZ-o?PxY(kWXjrg(6nZdmsfVkOHZQyPE}k6u z2d9)(l+>m#ojk2;*1Wd9#?Gm(8-+r(EJC!d95}o-aI>2HtmX0jakWghbPim8v@(BA z@jc1S=VmcBKKp-->4&t!ex^FsYdggnc=xf3&1L<<%fRaJeEJ-|3py+;_ER|L__1++ zbPDFx<~(bfy!IBqq`+Chh7N^C#;a0R1XMhkGV!2e>#IY21}v>|RnI1;9IWg8y!bDx z>I@@05AyV7Z~L%NiOKWci&%Jd!Mk1q ziL=aN?x8Lca%&z=nJ1O@I!>qaoO?+3w0Wi?y8X|RH^^Px67*|zY319Dh1<)Ie%=x_ zW&OO0zkpem@_a z+a0*2s1&C*IoQG^-Q}f@hxWwyRX-(Iw@kGN zuHapMyy4f6$saGC+56a|z2>9cl1uKY)9YuS;1|DnORlr_h-BJ0s@ZK*L9No_xes~d8V?ZZb*2N>a9EF z+n@dBB~OFpF1QJMMz5Ki#=X(e%+@{J;N`*C#gy zkNr@ZDzDjKHD{YgSz*fLxjA=R?ThcG2Iwe=&-f&kJ||j`k?rpPqH|mSFU-kmW(o4p zdpgO*fBhm29!3`d>xUE8$n@WLth~bOj&?pn-|Ote)CMnRPXPk zd9jlhy!n=Q?C4I_v>e_=t1d6dx_m$Tya~IBOm zl~uR7bs{yF*`zgQZ*hG6_4Uc^{wb3@tzR@b=6i&$OjPH}t4*93t!^~+0)yUPDU~!+ zcgE0{-TRs(#ERxgelvEdNN}0N8Ow5JW`&c2h5Xs_`$o6oFaDY>Ig4d#>SEu?jc1qa zbUx+0&3eX3ze)cVJxgOqke%JbziXkl6T98r6qRSwN^&-@m?mK#Y;;*@k#Dc5(abqw z%39A~*SxS;op-GH?A50$*O_y+ZV!xW=l?rl!oOMiCxtRj*H2>I`uq9LU3Vk;63d+4 zE#V1vW_7mi5OAG+f9I~An|b0oriGT%VoJr=K0L{sVqavsDdmvpj(2zeMA_vDPK%d` zt^0QT{zZP5#%CUz?;8ex6nJ{veCrRPwe0twzO1~taKa<~={mA@)%)FB7XP-p-DxGY zZ*t}}pD<0)y$bK0y$z1O{H~%_mbQ6X>m1XgGaf7wuJ;$6<<-&X8a92uTiS$Ep=G)Y zy(-lwz3IBqv1X04lWyp}v-}6V568T^#O<`Wm22)mC60T%=Kocr08tjscS9%`N|U)lT3}}P6cKU z3-50fZ@j;m;c(q0!NY~pQre%5*AUViILC&;R9{dC>i)oQpt%wc?(d+h;u|UH&mGiN9~H{ygPXY^mO^lbhb^ z-n^53K5d~5bJ7Q)r|CETY6fs7`x{)6&YAzA>oCLfC-0-PUnj1MtU4Sd|Mu48^0sfU z&iyq!y#D!2QJr4_qWd?L6qm2KI$8bBela8+IzChLbKMLfqt@plJ^NBrs=j+nUn-a3H!DPx`*&l$ zZT^-mi|4l{Z4r6uenibUse)(KuJc>8)+GEBJ$>jo-}jx~_ATF?4p=^Wss4X{u8KnL zI?20!XMQ@zE&fw)ZpB}6?(5m&+1e(*Dr|Sy_6GU*A3LjI`nFzYmWukhYyWsHOD>;l z_WOvcC zrzg_mA4ayP8f#1cUh`dk&77xh4DpMYqjC?Foe8_~d`8&%(1@$s9I|vSzrW-gtIN55TRZX*5aM^t^JP0aq11^xM(?-|)_)U086qkYmuBzjWM%X3-oy^E6= z3)?vlMgNcdaJ6J-uG_*Zm->IG)&#}r-uZVe_Sd`p&R6%|slQ~B!uWJ{{{gWt7ZSn) zB4*q@`#IpHC2OF%=G7gyiq^WQY}}eAQDy3@w9#AkN!^iGPmMHIGSyz;TxGoM;IeC7 zOP1!^B->Z4sunR|lY8m>AiHFH(8XvI@m)&OXBY2bYK^Q@H3?tx;%%r{6=U94e&@;R z8#{t;T)iR5yW`Kp7Xi;Bj`DY?-xpJveO+gULr9JNwhhGz*1@~p874hW*8Fkt^OcXk zR>w>IHm#p&UmbV<+vjidQsC9N=ol*U0+i4lq37eSy_u~I>F~HrrRh9i0-z?%H1|Mlz(sJ zsg&!JT2_2v<`I5uApP;P^)0!D9y?us)cTA3DxX?aVfLfBpnO$e)Y0eRr++=MG`-5S z((y%l&eLm~)n9s*Ej@IR$@l=zt*Odurk$P6xmvm?B&^c6tWUXK^{$I%noseaIm$gr zJ0@@4v~2n2b6k^V?Y7Exc(zj^)Fa=$b=Q8w2dO3Q)uHp1wr}%Wa7KB)P@Vi7*=wIl zbC#WX^SI*Y)U)>wa+O)EpI6(#c)+=B?cCWspSG>5nSAnw+JtLbQK3KAg-vvHwRUWe zD0yqXQn_u_`iMt%g*T_4cK5PLaGw{XeC5-eKSlTU=KZq;^A zE&jUQdT*`Etz%n+jxm1UmmWIpdaK~ed;_n`e8qfMty%hx%9an}7d>;Iq;!WZmB`w4YxS(_=XTJ01Zf;}yl-^VyzByE6>Dj9(<}8IzA8LBJB~K7$S-VBt=UMlcl05cZYaX0; zT<~kVa{I;iG z+f3T-*o5|d3HZ6$#V@=&*mMIY*V|WbmtHyNCI7jj{I7|-)P5u8gl~shBj2tvn)hf= z*QwoC<}Q(HD_jwmx^>cnS-*r7qyMh%elYVFSCPSDrV|y~4`z$%r50Tmxf=R1Y_(u! z;@&yWwK^v_t^Zvq<8V?#d*U2#9`?sV$KQ58&6F=(R%YMTeZ^#zSKQ(AE6=w*9C`ieGuImhz4WzG2+*Y+IeVg9VOe%j`iv@`aZS@R5aW8YuzHqmk{5m@6^ZZ@T7 z$tq1hOI^Oh?r)Uu8)O-0zPi@*YtpA@TAw{0@h)<8?(9AEw?rl`HK6#C$-PBc>Mz`P zuksRKX6JoU<({&N%5Cb5%Y*ZWU*+Xmg>uW4*Y5cK;nh#Rmirs4-l;1~bn1W0k)D29P_`!UQeeEUl;Y%m z^So~DYudY0YK>SeKA-Q5H!odh`c3V=_3!h`{)KNW5Wev_Ec;JGZSSmgnVYWNx)3!} z_Kc*(bdf#13G9WtG9(xM@46T2{%t>R$3fTN?kFRz^!<-+e{tP>&||-UY_9&6x}DpF zLw`N7%YA=);|D+XTE4X%?vEs0g7k`wc$arQJvL!cRT1}8uGUQ+%Kx^RzFp4C8RMvF zx5qH+XMW+zjhj|f^w{w6SicdQ8f$yz(&{f~wy!$%YsDn1KLL|8GZUTi4mriRRWt4A z&6|FD*IEBFm)`xl!L)v%?>vs^PrD79F5ceMpnm09?L>2t%CnJ`qKEhEMn2#uKDF&f zQt|B^jsw1*dc0o0&z@ZR(IAs^t=Zox23KzGU$8Xp>I6+4;loMup1zkqHGP_jKKFwI zd5@bjB3{{4JA>*oH=u{PS#XEM$&Dg9@4 zV_!nDV|CvZO>ym|ytzBw#CP<+n{?`S?|#XY+_^v1+E1wpT-9ni^Owi{+l&P%lRJH` zziN7S*zw%O6L({kCf~er{{Docp2s(Cty%oT)T&%tzGc&9VcTbaQ+=B~UT-ZGax$GP z&vgC5+{jO#_T+@^`{{k+z~zgT)s1rV?kyBIJK0^aWuCc1yxw2;rm1t)_1~W{s+2A( znh~Pcd91J?Lq%`u$;=1o`HPGt{ag7S2D44xrzyRsIq#I9b?Rz~?-6}Git9^S6-BST zoZUK!O*DFG!PhRXURGJ9nbC9CoXpP=mX@iUJM-6_yET6C(*g@7A3x`?sj)n`cH8do zxW8HK3#J+5%YTtR&iOI$Mn+MM+`-ibvzAs0?bT^t@aEn1e;*UCd_5(TaAxl`8Ewrg z+DnRx8~5}+IB;3`)Z+rfT9&DIC3-=ruW*fp*h1ettqGo=dA$;K3RPI{8LsiX*LHr_ zhwSV9mRoPC%07&CTi7S?A;(D6V{c(ajF_HXTg&33Z+>a*eYGZH?WPs38+gHzO<&uipzoV_qyiiEmdAgeyzHT0-t=2I{52))vl^-uMRI0 z^UvL8R~;As=T}+`t6|dfXLA#-wl8c%8wfxla_Wv+a1jQp!4T)q!{4Z`u0oE8dZ_{fK@eZwX^8zc-tT!b&5S zy-5kbGs~}sG6bi6n{Ao({r25FLzt7Y##*?NAvdDUs9 zXRObsE_fZihW%{TGp4PpR4yKSc&k(M=l&yk7wk3r(l@XDXfMU9nwm9rQo_?soMubi zayP%)dSKRpn6yLeR=SnW3y&t~XkB~B)h(=}^~&MP2h}Iq(MAvQxK{IDt9DFS@mMN& zruH_o)T{%qc3x4e{`LC(+y}K+TK`7pN5AawJ?3wzK=^SAIUg{64+w z{2u;qu@C2+f1fO1X&{opVR3wJUHX2nH(5fNGFj6-o&>S(beH6NmYVlp_P=bwHRA_& zmG32cn=YJX+tk_k?*d)J%_So;7*?fQBl>p8e`FB6uy>L73KuqlR?O%KT z?3cO99R0?(@5&yN9r<<-?Kf)g;6D2D!AF_B^Bva8-(7NalJdruhff?Ita_(&@YAn* zr%R6}2!}7{aeDVkPg`uslU?^$@iyI0t9f6o-X^D8W5VcWKS!e0?4!`iW05cP*Azyn zh#iz_k!@M}B<)jB(}S-Z|K(o9@S5elUn_HGOT?dCe!pMOrZK10PMnqfCz)4o>3%ai z8}qUUU$3w0-M8z^{(XnS^4l~e$Pgs$A3qUge(d;TI+H~ZLx&WtEDLn{kvaFI+fl2 zvuo3qoMpQ{Jq;J#U^WG()OH=m-MftwWY^s~LH#bu| z+0f}pcFbILHB&E%ZH9ZxBY7eoU!M|n-P|nd8UMSY&Q(3z%38N9-w-fEX3v5K-N-zX znW9^}9=d1kjL0%LY0KirqkeAE6OT#9i;_iM`cGv{?EGjSaqQcfw6B|HR$dlROI6sq zs5L`(wWq>&lRUfgi;gWnZ=QCpMU+6b0&*_?~h0KSPSg4_I~@iobd*q!oeg>ju6H? zj;~i2hyR}(__$1JMMS)c;2DXuE`)12b)&d4Vyn#1@NYwgz;s*9h!GYMF| zuc~96Pn>B}5RXj@cf-D_FR$v2vM%~DU;KL2IplP?)P|UN+an>pr{&q^F>zfvykI9o z1Gn20=3lQadb_<%>qu+ZSJm;V!A@(c_d#ZdZAte&s<^nFl#mQpcUwOD4o}0})}q^1 z3#FBerGsyacbMwWkI&iAEm|EUrf_aYcG*s=cx0aNw|wc zU(e;$pNkTXcl1{%z8CSe-*Mr~-0=I`?pJf@{Qc=rd6C_4V*MJ|^}7!9bF=)LEtsXm z@GY`|<<~2VbCYMfWzRavysJ^@oJr%ECD$F+bDntEakj5kYx&u2(=KnhdG=?>zLzJ? z<$XW7k+Ixw_wl5ZWfy0q?P?6k>F{++d$uM~`;6#?<4>(V)*d|J&-?7gmx&Jdk22k0 z`4n8mS9R6ln{$rZH^Vz=&sY_X=jGjFv}4G8xb~dWI_n2Qat~MTaWJl(9xx$kvx2?r z^N3ws99M5#xbsejYno4_zS2<+eixTJS8hccnmuIQ zJS7e+6TcnbH^osfQeyjo)VmJ5dLC`vX_ynS_}-yFfrA!5PO2Ui|Lpv5{!j7CLSnDC zIZ2t?tO@I!6xyMs5uUWyYPRaX#KHu_R?Zn8vNSd_8ou7RW#2`!3woso0@hY4eUS{Z zQQheAamqU(`E*s4d5$+1{9Ga;v4G)?!>rEyiqz$fi&K{dgeLzjORiM#;5<=b_~r2G zZPK?EUCFdu*84Qq*7df<{?-V#jOHob=UEKfZf^X-|9SBW3$YnR1_vVp4scy)%KrRX ziBX+*-9Z_T1jCN~f0qY3Htgqh{LC3YZ_zGGjsr$#4>@!zF@7j1xN=Nj(S4RC)%&?J zZf~v}^C*!v<69oO&ydSUqu{(zf#m$o?-Nd~dvkq>f3!}G;Mq(1R)4A&Mb8(zxu!>F z%bi;yMX#Tj#?P;Oc5=zpwax8^ZE97Iy}rgeO_|&NW9oxliz1KIyf4jOnkhd2{Il~f zL>`A^@f`p9AmOF?w7xjO89oZfnO7;7oPEF1fqTE}Y8$Ns_WOhiJT`wV`K@ftddo#y zTWaej&+UFU?-hUMc%^KkzUIcswXtQb$LB^qa;W$e^SqErUb3E9(}831v$oe#Z?8XT z@buAb`*wFzl>VH+=S|&l-`iL!S}r#~ySe-P z%ob-24qjJ>i2`h0O&bDCTAGs<+&D7xtM{YH55o7e$~y^7R`KI8>e@SD+oIWJH@z+f zJX+~;aMklgOT?rXDfeC4^=MV{^4Wjyew%aXcL;C0=ccFUoYaqUNl)T>UTtr|>gK$4 z+HEr_LB-Y{#h?ovfr`n~T7_1z-Dly`{bDdlEG@#5-&*Fe+|J~tbGH0(w=rci&I<`M1Gr*IBLyTkqB`ZTx9FvB7?-N$W4pjha{VJx%xR q7XIuoH@I! { - mouse.down = false; - }; - - document.addEventListener("mouseup", handleUp); - document.addEventListener("touchend", handleUp); - - const handleDown = (event) => { - // Disables link dragging that occurs when spinning. - event.preventDefault(); - - mouse.down = true; - - velocity = Vec3.zero(); - }; - - document.addEventListener("mousedown", handleDown); - document.addEventListener("touchstart", handleDown); - - const handleMove = (event) => { - // Disables scrolling. - event.preventDefault(); - - if (!mouse.down) return; - - const newMouse = new Vec3(event.clientX, event.clientY, 0); - - const timeDelta = (window.performance.now() - mouse.lastMove) / 1000; - - if (timeDelta > 0.1) { - // This is a fresh scroll. - mouse.previous = newMouse; - } - - const delta = Vec3.sub(newMouse, mouse.previous); - - mouse.previous = newMouse; - mouse.lastMove = window.performance.now(); - - const axis = new Vec3(-delta.y, delta.x, 0) - .normalize() - .scale(delta.length() * sensitivity); - - impulseThisFrame = Vec3.sum(impulseThisFrame, axis); - - const rotation = Quat.fromAxis(axis); - - orientation.set(Quat.mul(rotation, orientation.get())); - }; - - document.addEventListener("mousemove", handleMove); - document.addEventListener("touchmove", (event) => { - const delta = event.changedTouches[0]; - - event.clientX = delta.clientX; - event.clientY = delta.clientY; - - handleMove(event); - }); - - let lastUpdate = 0; - - const updateFrame = (timestamp) => { - if (lastUpdate == 0) lastUpdate = timestamp; - - const delta = (timestamp - lastUpdate) / 1000; - lastUpdate = timestamp; - - if (mouse.down) { - velocity = impulseThisFrame.scale(1 / delta); - impulseThisFrame = Vec3.zero(); - } else { - const decay = Math.exp(-delta * friction); - - const effectiveDelta = friction > 0 ? (1 - decay) / friction : delta; - - let theta = effectiveDelta * velocity.length(); - - velocity.x *= decay; - velocity.y *= decay; - velocity.z *= decay; - - if (friction > 0 && velocity.length() < 0.00001) { - theta += velocity.length() / friction; - - velocity.x = 0; - velocity.y = 0; - velocity.z = 0; - } - - if (window.performance.now() - mouse.lastMove > 10000) { - const impulse = new Vec3(1, 1, -1); - velocity = Vec3.sum(impulse.scale(effectiveDelta * 3), velocity); - } - - const axis = new Vec3(velocity.x, velocity.y, velocity.z) - .normalize() - .scale(theta); - - const rotation = Quat.fromAxis(axis); - - orientation.set(Quat.mul(rotation, orientation.get())); - } - - requestAnimationFrame(updateFrame); - }; - - updateFrame(0); -} diff --git a/src/page/cube/mod.rs b/src/page/cube/mod.rs deleted file mode 100644 index 6a99dc8..0000000 --- a/src/page/cube/mod.rs +++ /dev/null @@ -1,28 +0,0 @@ -use maud::{ - html, - Markup, -}; - -use crate::asset; - -pub(crate) fn create(asset: &str, faces: [Markup; 6]) -> Markup { - crate::page::create( - html! { - link rel="stylesheet" type="text/css" href=(asset!("cube.css")); - link rel="stylesheet" type="text/css" href=(asset); - }, - html! { - div class="scene" { - div class="cube" { - @for (name, content) in ["front", "top", "back", "bottom", "right", "left"].iter().zip(faces) { - div class=(format!("face {name}")) { - (content) - } - } - } - } - - script src=(asset!("cube.js")); - }, - ) -} diff --git a/src/page/icon.gif b/src/page/icon.gif deleted file mode 100644 index 14b8c13fc8a78a8061d86105bca11ac9e742c517..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82837 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�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 |)JR- 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 diff --git a/src/page/mod.rs b/src/page/mod.rs deleted file mode 100644 index 6379b6d..0000000 --- a/src/page/mod.rs +++ /dev/null @@ -1,69 +0,0 @@ -pub mod cube; - -use std::sync::LazyLock; - -use cargo_toml::Manifest; -use maud::{ - html, - Markup, - DOCTYPE, -}; - -use crate::asset; - -static MANIFEST: LazyLock = - LazyLock::new(|| Manifest::from_str(&embed::string!("../../Cargo.toml")).unwrap()); - -fn property(name: &str, content: &str) -> Markup { - html! { - meta property=(name) content=(content); - } -} - -fn pname(name: &str, content: &str) -> Markup { - html! { - meta name=(name) content=(content); - } -} - -pub(crate) fn create(head: Markup, body: Markup) -> Markup { - html! { - (DOCTYPE) - - head { - meta charset="UTF-8"; - - (pname("viewport", "width=device-width, initial-scale=1.0")) - (property("og:type", "website")) - - @let name = "RGBCube"; - - title { (name) } - (pname("author", name)) - - (property("og:site_name", name)) - (property("og:title", name)) - - @let description = MANIFEST.package.as_ref().unwrap().description().unwrap(); - (pname("description", description)) - (property("og:description", description)) - - link rel="icon" href=(asset!("icon.gif")) type="image/gif"; - - (property("og:image", "thumbnail.png")) - (property("og:image:type", "image/png")) - (property("og:image:height", "1080")) - (property("og:image:width", "600")) - - @let url = MANIFEST.package.as_ref().unwrap().homepage().unwrap(); - (property("og:url", url)) - link rel="canonical" href=(url); - - (head) - } - - body { - (body) - } - } -} diff --git a/src/routes/index/index.css b/src/routes/index/index.css deleted file mode 100644 index e428d6d..0000000 --- a/src/routes/index/index.css +++ /dev/null @@ -1,68 +0,0 @@ -.frame:hover { - background-color: #FFFF00; -} - -.face::after { - z-index: -1; - - content: ""; - - height: inherit; - width: inherit; - - position: absolute; -} - -.front { - background: linear-gradient(to bottom, cyan, blue); -} - -.front::after { - background: linear-gradient(to bottom, white, magenta); - mask-image: linear-gradient(to left, magenta, transparent); -} - -.top { - background: linear-gradient(to bottom, lime, cyan); -} - -.top::after { - background: linear-gradient(to bottom, yellow, white); - mask-image: linear-gradient(to left, white, transparent); -} - -.back { - background: linear-gradient(to bottom, yellow, red); -} - -.back::after { - background: linear-gradient(to bottom, lime, black); - mask-image: linear-gradient(to left, black, transparent); -} - -.bottom { - background: linear-gradient(to bottom, blue, black); -} - -.bottom::after { - background: linear-gradient(to bottom, magenta, red); - mask-image: linear-gradient(to left, red, transparent); -} - -.right { - background: linear-gradient(to bottom, white, magenta); -} - -.right::after { - background: linear-gradient(to bottom, yellow, red); - mask-image: linear-gradient(to left, red, transparent); -} - -.left { - background: linear-gradient(to bottom, lime, black); -} - -.left::after { - background: linear-gradient(to bottom, cyan, blue); - mask-image: linear-gradient(to left, blue, transparent); -} \ No newline at end of file diff --git a/src/routes/index/mod.rs b/src/routes/index/mod.rs deleted file mode 100644 index 54d11ed..0000000 --- a/src/routes/index/mod.rs +++ /dev/null @@ -1,46 +0,0 @@ -use std::sync::LazyLock; - -use maud::{ - html, - Markup, -}; - -use crate::{ - asset, - page::cube, -}; - -static PAGE: LazyLock>> = LazyLock::new(|| { - cube::create( - &asset!("index.css"), - [ - html! { - a href="/contact" { - div class="frame" { - "contact" - } - } - }, - html! { - a href="/github" { - div class="frame" { - "github" - } - } - }, - html! {}, - html! {}, - html! {}, - html! {}, - ], - ) -}); - -pub fn init() { - let _ = &*PAGE; -} - -pub async fn handler() -> &'static str { - // &*PAGE - "asd" -} diff --git a/src/routes/mod.rs b/src/routes/mod.rs deleted file mode 100644 index f98bd2c..0000000 --- a/src/routes/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub(crate) mod index; -pub(crate) mod not_found; diff --git a/src/routes/not_found/404.css b/src/routes/not_found/404.css deleted file mode 100644 index 62addcb..0000000 --- a/src/routes/not_found/404.css +++ /dev/null @@ -1,29 +0,0 @@ -.face { - display: grid; - grid-template-columns: repeat(2, 1fr); - grid-template-rows: repeat(2, 1fr); - box-shadow: 0 0 10px #AAAAAA; -} - -.square { - width: 100%; - height: 100%; -} - -.magenta { - background-color: magenta; -} - -.black { - background-color: black; -} - -.frame { - position: absolute; - - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - - color: black; -} \ No newline at end of file diff --git a/src/routes/not_found/mod.rs b/src/routes/not_found/mod.rs deleted file mode 100644 index 8fa607f..0000000 --- a/src/routes/not_found/mod.rs +++ /dev/null @@ -1,41 +0,0 @@ -use std::sync::LazyLock; - -use maud::{ - html, - Markup, -}; - -use crate::{ - asset, - page::cube, -}; - -static PAGE: LazyLock = LazyLock::new(|| { - let face = html! { - div class="frame" { "404" } - div class="square black" {} - div class="square magenta" {} - div class="square magenta" {} - div class="square black" {} - }; - - cube::create( - &asset!("404.css"), - [ - face.clone(), - face.clone(), - face.clone(), - face.clone(), - face.clone(), - face.clone(), - ], - ) -}); - -pub fn init() { - let _ = &*PAGE; -} - -pub async fn handler() -> &'static Markup { - &*PAGE -}