From 20c93cc78b29d7a4986baef2cfdf9cc60d47d9c4 Mon Sep 17 00:00:00 2001 From: Ran Luo Date: Tue, 1 Sep 2026 11:36:38 +0800 Subject: [PATCH 1/4] docs: remove sponsor ukey (#5217) --- README.md | 1 - docs/assets/sponsors/ukey.png | Bin 14568 -> 0 bytes packages/website/public/assets/ukey.png | Bin 14568 -> 0 bytes packages/website/src/components/Support.tsx | 3 --- packages/website/src/lib/downloads.ts | 3 +-- 5 files changed, 1 insertion(+), 6 deletions(-) delete mode 100644 docs/assets/sponsors/ukey.png delete mode 100644 packages/website/public/assets/ukey.png diff --git a/README.md b/README.md index b1a14e6164..7cdbc71b6d 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,6 @@ MarkText is an open-source Markdown editor powered by the support of its communi | [](https://serpapi.com/?utm_source=marktext) | [Scrape Google and other search engines from our fast, easy, and complete API.](https://serpapi.com/?utm_source=marktext) | | ------------- |:-------------| -| [](https://www.ukey.com) | [Secure hardware wallet made simple.](https://www.ukey.com) | ## Screenshot diff --git a/docs/assets/sponsors/ukey.png b/docs/assets/sponsors/ukey.png deleted file mode 100644 index 8ffd2f90a3932637984941b1048b4e2b457a76e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14568 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 bQ-QZeLY%!fQn%naKol`y>9_fUAHV!Bb}R-& diff --git a/packages/website/public/assets/ukey.png b/packages/website/public/assets/ukey.png deleted file mode 100644 index 8ffd2f90a3932637984941b1048b4e2b457a76e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14568 zcmb_@Wl&aq^eu{r5~3ijAPR^eA>AklNJ~hEba%H(Nh93|2#9ny2uMDJbazR2*WJ&1 zXYT*g{cvaQIHNvw&ad{~Yp=DA|9fdsYzz_%6ciL}v3GCfP*85!;;D3H#ZmDN%;QW98L3-PhLHGg9|G9&mvAMpjowm8v|NS=y z{WmaCP&nGf-o8itNT76T5}>D(WFVp`?_2iJZLcj64g%2bT)J zd$J)a`f4r99kH}-p=y!su7OE^j7BK=5dZ$Iw-oq#A3rW1qc`H{ZzbLEqwhUG+*>l` zTuFA_s$)5}?XgW>;lic9PmHg1cjrbt%HgM9nU9{|zjN#6=LcjrM?UTUw%4+B%qv2r z%xG%=c|!Q<<7{(rJ@e<+Pww*)zPv$j?o!j%@qvj(-Ltn)@UslY)l`4~P1BrC<)04^ zrJo?L6Vcwc+VNK}ZD^TSgB3k?dwnzc(C!TdT0l^M6Eh zZ+zOfeyC?u{7(ET=lj!WCz^-sW^KE1K0SwxHVYb@~3fc_{cG zjS7bM#pY8+1_>ihR&D6kqRGRZziaT919q}>Y`W_ zs{g&uI69`PZEXDQ_!ZIXGgosuyjir0_)%pghIJ1NxZmrr-i08^`K`&`b7d7Yrxo|& z@?Q$Wmw3q8&E8G!rzXdr#i=q7e313u81{TA#n8Haq!bpH$^MLs$KFAMOT6cQ@m=;% z;UbAi>4!CPUEVlnd=mNaflopRIfVO>?1GiZTfI-c-}K*AFnsPaAU{x`@wU1PpL`dj z@RmSs0X_zWI`St!-`|=0??OI;cVgg+cW58}zhB}fq8e44^7(Vy!?h0#>XpA+0tu_E z7jFCe`|~>OpahF}QHptcdo$^GMiy`VLf%B&-{!gcix)2vxomyC&~a?`7RA!i)143g zJ#eWbtJ4gn~KY58bO*-?|exN<1!IET(JY z1YB)wY?@|fQrOMM|NaoeGjH#)jF^##nQIhQwVQ z9MPiNI;dCn|~x3x7{d)eZJCB9CU8>@Q7hKOAy{!Jo2^1Uw#nl1}0-f;mx3Cn{5?p;?{o z>7N~KO3c)|bJ_iSA9wHux!IZWCM@|{9;ZGX5zq0+$wQ-}@Y6+tpK@}JQkHylaA5D~ z==k&J&;7@br33|U;*jya&Kc4%HWoWv8?ttAXdM`c7%wwjSX}g0H6PF5bK3cIa^lqA z-yh4QeKU}NemLL!9g;CJ@}Pw>qlebY$tUy zvzMYFkLGsfn$>HazIl7!VkN=mPRf6;Ar@X(RMa>&78j%G;ve#ur@!9am6wO3xQG%u2XmV`HO2zIvRJmU|hiMKE%Y0=_;Z#=pkj(GE5#=j2vkIltS~+)T{p z!YV5(J32P@%Js-hB;=6_O<3iVZ{NO|jhFgs)HpoA!xNI0z86kOA%?4{s5m-4u48T< zteQv7!;=scgazByXT*B?xs!l^U@%`JfsD_E$!hkso4dPyZ`R1VN|_0Mi9z>MdivmM z`}Ja*CGmJxW4Ym8QRGs;-m63Z!T%0jSuU+9DmJ$Lr))Z>!v;|losz+FSDf2UBYJUK zRD66VtSIt2MMXvb4qXOK*fcdYSuLj%4Z7oH3pDu>6B7%|%37M5z9c3-g5gxT9y5#- zXsv9Fl_c`J$E#IXd`n6S7SBji%u}u1@8Q8B=T9VIGa=%w&@3<iJT!^5|YjUd^!}T>&xTQg8>=+Zm+qyxvn@CzrsQ$h>ODF z;-^eZVIG%fefb(Z>gwu}onfgX>tgTT&Hn34zu0NUdBo#@1#vB&F(0L*ITs`p6_hLyUnD)8g&lsPS2GSTU-wtcZC+3>j5TKA3$b zWp->AUYYqaam|FQP=m1e8b$YW1{#fpfFGcKGQC}DptbEVno zxP9%sGfQ!}#uiC`ecW&zlg#HDd#U_}feN>+43Zbb5hSl5VwT&Uo}ONZM=)tdRpi{J zYn{6iIC@{EeYmfrG;&dHI{5PqEYv`zl|(muRZEi*|~_E_$!dRpeVw`iQ6hPKm2-WE7$@%9hCN+0tQ z_pOY!Z_h;IxY9)N34qfBc|?ECW%_$-}d-uprdzi=F);C%UnWsZ6ySqO-81M0ag4 z8>$x`2}wXgLP8^3L8BLXiR-b2bP9j>+2J}Ye1+_Y%bVT4Rl6Wk!ap#g;9>WL;C#2s zLnR%hPda~#GxjjAH^$QL#=PjooNe+6{0;rfc_?%lgaW#dhRX^IQW%OVNv=0r>%QQ!o!|GU!UMYL5_Ag!h_K@dv8DzE9fJ%`ioirDvG#;lgQ)%T-tfZ3KXLPchummf?%t|5^ zchHzCG(0${;IJ|JSvo7-dZE>BbA0Gy9h7ohh)qf{WGKxw`;q24F0^7(OU3^QqYxUc zwAS^IjH#>RgCuxzb~eAXdssvw0_-eE;Z^? zFMml#7l?>?CTX%#&~P>1Pc^W1^AV3hb=7;Z%EY9koxQ!6r=(Ogf0Fqc{$@&{*PqNI znDOYDO01F~^?v<&2M)Gn-C=a2oitRGT=lAO$k7*NFpvNRuCAD`E~clam+EqKbX0pdtoBoZ_UY57obG3KaeO~LY1fC%XG?ks zi1S8jomt>2!BJ7Cyjm$r5MJ5J7Hixi+YRI_u`MF^rdhDV~oJD@966K)7ST{Cy9qNx5RjWdVYSs5KiL7$?k1bH$VpMmDUSizkYq4 zr#MhzD1+RbiWv`y>#NJ%{r%>lA$)XnbV!r%B3-M&11~SPWkfD=0x#5q9ktnCb%&aEw9Zx0ll#H_i>r0jQ9i^L?DGovnL9^ zXH_l7djC?uajRBr^AVREYe79GA;Zqeu5S8a(A}*2`NeZbo5h5=yj|4l0B91q?J)pJ zHZ%y>uMg8JJZEQ*hRUBhuzCjz>xV=PgU_0JrPb%Ku>1213q>U*&sbR_^%2pKS3cUU z=$5HUL4{W?HzOX%l41%K>y+W47RQ1XE zdHTpYm;KtqRF*!1atU#CVY$kfWszMBlu>Q60sVtIIYD66R zYpID(`YN9Bl$$#~N2wtCAF4B1r5o25?Pd`Y`}Cu|y~Q?i zj=*5y?x2i}_)MuweT1%#PL=0%y$-44*5urBx0*12#f#;p62m1!x1k)RbPxA$_h+5k z%$n>W-H`FSeT|BWYOKtILwt{%KS(;O8PH^mmPgh5B=d=K>ysUAN->>(e^Z0V_^L;( zxx*=6xf~ez-g_KCDfWol?km7w!e1lh=4!RIwa^P(oUIouE-pU&wXnS%3bV!`=kMy> zqM#vr^{NPqh{;h(g#oYdgC?0|O=RPp4`etL#>B!_Jpnx!XC}*rE>CM9qUQaeJD6kV8gB z=Fy`^a7vc;mJkM>cX}~9I*$L1Sl;jG=v-DLBsBCmGq&~Lc=s3&50T=jNyWt#7a93* z&_u#yIM+WW=6NvbIUh$4dFy;tPa>D-N>7p=B5J;3+9ihvnjmIn0x~jb5fR^9{H3!) z8dz@12?yCOZ|JPvifBIP=JtiO0?^?bcvk0*Mb7HIkTGvMT3Tcf<>cfv9!NWrz7`LE3vq!F9FHuG zONbZ%2w0Ce!ywVbWoVI+ks)6IVzXWCr-I?`doR4x^klc3mV~wfN|KLvjz};`Wpy%-Q)hNPdLH!n+~V6Ax5I{0x#f&;VOMLbFCwNlu0<@vc|Y^C zhK@+ELmhqReA}}u~u9j_H4$Jlk05+Re9n-7F;%+Cs_qFOPFZtM(0_KFx0*md_a~H6DnE#MxhWo*;sH zvOO);+FOt<<_@6$R!@&ieF@-|-*e69;*0U!2DFlrlDBN?4zYqWp~QEzxBu?!3~)JI z!>0uxJ`?OhNe}~>cg6Mg)s?F@o?mDv4&W9@{Lqx3d=3R{u36N2 zHGI#k%;nI;Y^?YORPB-^*Y0@xQnOR$Kmzv+8r3k;4UgI16i|)CM)IesY?fqN&Y*Ao zVYAd(ykt{yFXP+}J|5eHS(>o-imR!qk+6k(iuw8ZA-H?g>qt7LYC3KsptCj_ExeJZ zhA@h;~M^t|SWQuJLuYvlA~VKpE-vy&9C z>DwGdbCtqb7U8}xlTUUE3)6#$_iq%`k4NpVG$X3dTUyPU4tM5+D8-tlr>DOkYr$E8 zW|)VE2b!Q{8bnuD7YCb*t1Brh8$V`pac7woYfh*2T+w7ox5=i2~>jq zJ3E-QS1vd$W@I076z76Dsym}o1jsdi#KvfOVn3so^4Kh}oT=!xvD`Bnlk+&*`zK2> zQb1bHK;w*8Zk|x%K+lo>WwNj8k$BS(6yUL-7yHZfdV7o60R|$v|LnN0_EYR3JC#lb z#z1#AoXdp-?P6k%fo>O3be{cnu8iy!lj_4UaxbBB5fc-?-ok9Z@670CYPv3%-db8( z>eje(aKKvgc(}EdS_=yg7Z;=M(Vl|>!)R|-M@@cl5JACLw+m~U8prJqxw_`&fLX6) z5A5hLTv~b8P5K`3NYW8tRj^^Jze1|)@NYoDK$MV z?l6!0Qsl(I^+499s~s=@XmiPD{o-`z;#l|%BoTbW7Mpui2^^M7>jg1!oAuBFCJG1E zGpo5$HU9CBI60cwPRYj3V|TPtdeDL}Yl)|NFI)H9B&d7TgB$>7fi zRBwQOfI7s<$@y?CT{W*Kg{rg4XyuTLho|Q4*|E$bpqV0vO_%gTXljjyM-vMgG+P-P zV%y4-BO;pNW_nsbp?oxUcS{|eXw(F)Xn9Z0v|U}I>mh*iF+Tdy)XIyAooB0WXlOg{ zeG!!Hey%>Zx4YZg(z2uYS~V}4#So*-*2hmPOv4tnd0h?irMIt#&hYuoLYKpM8=iL> zB?gbx$}fzf%Yk5`pcuG|)3CD<9QD+oTfrnC;a4g*92EV&G~u_x!o+qF9Oz!Rv7uc; zwY0SSrI<%M!C0rsIAJLku7^OADK;4*slTwv7PAMW2hB$U5wFuMOUm(li-d^$J2s=8 zr|xG5nVNNzWu*ewL3(g>CM&H6K3)P3ktrG1*^}gRTqKvRaIk*NE)nf!zB9VB6Zoff zy0uwoY>ejR1`U9+Nc!!O0-WX6#>UUw_O*HoMOfXHP0ft$zRXU}&ir$C$ICYn#jc*0 zyKTD{V=83gA;geNZyPRZdDcnx)vhfsw|;+fnXT08N5b|i;#(>OKqVnRkEIcHF57aQ$B=5yj@%OnwGMo8TO!F!<9Or_7@%NS!Eamc4%LMgt$Uiq(p4}zm?aI4m z9s2cQp_^ldwKBmvLp%yvGof(GUrGgwc!Y#ni?TZ#WBUR6IiB$u5)HD6_%bPE zO{qfH`jeGKc3YGFkUd{n&vQa${&T(^`i*bvkH37eDG%!H1Nn`J7b@G1+tD0&>}I2% z2(@yryN+A$i!&~_x10XR$`aV+$Y7O`DKLEz$Bx}%`y$Vh&A7kv{ZBz?deq9>Ed$0f zBn+jKc{?LtL?HX@Qqz&>5zY0kn(Yvs{pG`pb*+8;?ci4{iN&)CmeF+i4N|c?H?+0U z?_!Y1K)G5S%zj4hwnNr%Rh<$R_Hk^1K`Z3r_VhLXE{CWnI&$RK$K$4Z(zej7B>!|> zk!C$Vrel1-iwUIX;=5{0On$$r>n|rfo%Rdci^FO=&Rf=*I+m8b(B;K(+tZ?=^Pm5` zb{0+Vd-&p%c5w@X$9z1&>*MC)S%cczVaC=LZ9E0r&3bD3MMJ|3)C> zWla+>&6CewGODli_z*I;yg=h4WyYJX zaZGX8)NCE8&`e$OTN}#RKOE5_?wXBg`}#o0dCrGW4}nNPx3<~i^SH21FgyMJ1{FHe z_%|z@0A;Oq{DR0XLpFA8X14d+#DYzE>i$4sUzf+rzrqe#&J#oi6=;ezm-|_LOvd=YU(u zY{R_ex1Er`y@q-1@*0xggZm$y8h#;rAZaudK9}0;f7m&TKT;Q^ zM(f=taHU+AmX@+dJ>Kk3`Qv3_SM)mUI`;^Db3Lz`BH0pZ>O@K#Y%^g1h zH1#;&yi;P>`;4iuPUokuqFO!gSDB>n8JxfG<7YwF7YMwJTOtvl_ZBNw{5V^UW>{wD# zQ^yTPr_x*PRay)2KRf$$JXO?rgTCd3f^?UX*g=y{>Xl>?$aw^X)_4W0wSNrvQ zQW}0|NW=j6XI3f@iLbp<#clAK508uMNaDF$ywnz&^0710n7S-u(eCMrirV!3rb7-W zMv&>f^7r&VzfzLZolk!&9kPdWtP(*g(4DKovPbAcC8pE(g$oH#gh$3_XG8B|@)+6l zt5vb3@dC!q;e5stRaxmYRt$`!TunJTv_iKLj+^7%qU2I;^OoWUO%_v{jC;}iEse@e zQ?T0FhK7hG#Dm)idU|^OkxnRBO%jZ!#E&`*VHQUlT&ksa!pup73Yzg3p}o7f*eCNi zrwg|kYmrA94iPJ*GcF5SW7f8rxy*r;_$S>n2n}pi=)iW}?u+sK^o+6^*>W~po zZ3_@Rh%;uCAOoB}qX0`!j_97&MB;v+keblRYmfiTTwEp)9YzL*guEgN{cvAbz|1z4 zGAx|(MRlvdCPBf#>chGx68#BRd#JPw-rLvSSMYuu|`n z{I{?W?B(U9bAEkwd~COI5xe~YY22T@BI=!wx=TUu@xl6U%XJLftiEy5@1#ZA)Whk=^LQ0A7b*7;w6Brl3QGL zX)-8pS~)r@sVC5JuFGL?Z%tGnsLqYmZ&JS3^6ArZamfh`i_RdB!=QDt zcuAE1R4=4&EDAb!D0i_;bEw1l8ZFTM&hE^)vzk&fj_R*IIb>Zvk&16BdHE)i+CXhV zE@wy&4sN~P-mnxX6c|I!Cp#2=_a4s!1^9^5>eGnk`8ArcDEf{mieKn&|ACze*?*(; zR_EHHwul=SB+Fz-vbLLXdU9*UF~rt8JSvU#Mxy z^ehzU?11{`}3t9s=edZMO;UOfMCH0U2ATXFNgM<$S!LY6_sL@tsI4- zbg_um0COcs*3tB+cQAQO3e7X})FW+_r|Tb!TJ5wIFGWY2fS4zg!e3|9_w@IyrLgf6 zx#Z!>Aom7BhQzk^Z_qy_WcZHxK6HLYTUD#=oSjG};Gs?v90U~!sKVD<_ma^>We5m% zme=2>-{$qenko2FMoO`Eds3?B(sNVf9!&XEfY;UaT=3}R;NZY* zAR#qU9<3mU)v?{));5YB(b*}-Iz#iV0rbn5&yRrl^$)6T9V=PUJ0GkpN>MqcWbpwasi^ej+4o$a=BTlk zBZsRZ{|Je_SISkUG8N2GuVS7kH=oNXsQ)gN@H)Mt0b4d%(g&E9ELApVOyCk$-5U_7 z26*|kgjbj6$JibZG&D4z?}LJ}HSNw!9+8(v53MA`3X(J3J3IWic>kv&K3QfXj=-CL zkM6|XO)aq%5O9f9L<#6(UG*Vx$jUAT8(phRl@%HpCG z@FTz)UJm{!o8BGEz3|q`(ptGU! zd?q3kf(k7%WUBN&BedEUX;luR;ZEC9B;K0CU z1S00sr`JH>bU=bGGM~7YuYOwcPSXV7c@+IbnJGt&BPl!HuOSnc!*Ig7@IRwh>b^`L z!Y(dI2)I6%g~z=w7(p16p)Wm|;01XsXd_a+zJI&ah$4k=aj|0{;P_c6a5%MfqysY50pB@vj9 z^KuEk93@v$Qu1m7ZC4x^jBv`iO$`_7#Cwm&N!gTMYMfy&w0RoY#moRM4LqJn`3!)w$Ns9n<1?xsQqn<^ z6iM85Au%xp^VK>1vwMB%^V_@{kAR~HCSel{rwosXsIt!~+~eWmT1t2dHiVWW9+}(K z&d$z#b*_$-VozVb3u6|)@;X$ z4h#F8Enmg8rRlOt1-uVN84MKiJaaf@)Tl^|ua%Y6ceM(Rpy3JFPf*(%f68v}f=&We zh4JFdl*sk?Dh8iUkp&pQi%Yd)I9loE#1m=hKVo@LpQTGvKsbAQOUBS!_WyW=P12r# ziOkF(es$FE+#|mV{*ZI^%(WKCBq&Ex^_h@W;?+4q!Gl0}Ou)}VuXa1OG)t3AnC%+h z9^H_N0vXxj_@`C@aAawE3Xiu1ekXEuPQ>#{w2O(o&kBi2izVm3ASHKaRT*Zs0%7xN z#q&z(=mZGZ{%m>CF`EpgI8qJ^{s-0J(b0-&&Ny%=rQ%r|0eu1%%vZ0H`#A~HKQugP za@k))LY9wbFhkWvgNWXMO48odwHU})-%c1gZ?iV|0@Nu?W)_xg`K)`-M1p7(RzP`w zD=L~Umkq4CS0i!H>HZ3s85HtVqd;zpU5}3YGng$eY2yIb(L3I%>xyUd`}VAj>ErMF z)6Odza1yl7kCLcc3_-fyUrs29Svy>k%~SmVYPe46^k-D`u_E0Vv(q5rPGigZYY+U* z2}hm7wKDbkM~%>XT^vn3fO_~!ul-Jotech9`)>pr=ZEX^KhA(KNd?J!xi(KY4X~lG z4aSRVt1`AK3*hX6k6L?wG2s6NdS%j_$Ip zjd=Q7FMJW-;E$E6ytugdH<*nFv0p5WwmDvw4wRUuB}zp`71?{B~-iHiH$h@DCl~tmTAOHZ7tx?0iIYH=vi`*8F^nmUICsDRm zgC6@qM7s22MuQ$!di1f9kJ{Re^DQYcziO@ru*i7d@9IZ_TOg&~_ipW(33~dx>!r&> z`7GbPwHyuOp_ARy5Ook2u~Rs&rvC%HXY7oW#OZZ+|+~6+wAr=t}&Y-IxJO$w3%DPa~HtN2Qpnthw>_50G*C1DW>4 z^T(jEdXe?$2L}gZLu1%-r=^1hJYy$rZI zD5lYX)V~jz>>eE%?9R6U6Z8;+q^GB684%$-oCsxQWu%|Z%^lNKbgIEKC5gw@amakM zFg2~l-uV8b3kuhxjo&j3{wm|(48Q~qZgs50Y_eeKUVXEaeB z+_#=9*CO55k@@86N@}#$+5HOP1kGV^;Yz>|Lyv-*Z2-dkJ;(;|PaX(k2 zmcpPdcRmGiq1bXJ`6>1e|Fs(hG=kJ4jM--U`nb@Q8yd2nS3yL~{{9U3BM!_HbE~WV z(pk?yn{_`wDgvP=nqI9HE;v?UNe+4%BpZ{F{BCq|H-Hlf#GF>&8&|i1)lmjX0=R!A zO=lnNW?$ls=6d&YkgjjiMg?frxx8SIjwX;wINJwxtt(W(A`R4B;j2a$r@{FtN73E& zf^(G;11d7Ivd*(`j5#2Oz3-9}f=WUFqMw2sfm4bN^#OpR|f+}a)>TXg_rb0ZWp_H(n)7tv$Hta@@-D@ zC?HiK8R!(xX;_XKLT5*FoKV$`nFc?YFAYX!Mg|oKOpQPI@zGx}(_YcdHj@mQS=-Un z<=#gFUke2|_h8f=A+4aEw-o8NA@dga1%Leb5eBw8)x6f}>10S)NbEdbYMdT>I_F33 z@e#rg{5jxGX@M=kcEJE9H1r1QZL8%j;@Y~pF_3~9*$Vew%k^tmOje5N=sZ2%&idYG z1bI_g`6pQF(vae3P0if8T0xhNcPC(wNs6cQGGMVl8b!FcxWKPCH~T&U(r;*JXvLWP zB_-8VhV{a7@hf&XXD8d9o(wuUH-(Ur(#1Y)45MgRc(^#U{P*s$frleiI1ojc@XYh3 zzdu+l)WHnF34-v+@$m!!SYp>kj$1}5lE)quf*T5$D4@ln0gGaS(*Y_ltZHCu@MTvr z8RO|RsvP+b)R!-035#na~a2(5Z%*64*L8xE%Q= zqfSmv2I#FZp@ZP^lZZ$)*+32dF>u8|bb#*oM#V8h(#qP}V_7{tQ%7I_!y+4_t*lN{ zRAl5^usMKo;|2_6v2!^yGjpZKCHJdWue^PIZ8pc*zI^#&Wgk^hGBG+z#KuNINkQ?M zN+P-tx+3_h6^v}I$)|SLcW!ptcBN-`%5es~Ax7X<%U$q&{V@ng*x~#rnGYYLUnJl9 z5+LrMXH5kLXD})wrEl;p>&fF*RaL!m+)_t+6O35hj;9>4h?ybo%i}g~GK#vma6=cX z+a5;Y2I4OCQt&n9YP%QiXG9Ks(qdxTjbG4UMbP0W^Iz-;B_>H2-gTu!7uKe7kp|K4ko-OV0heL>BW2eI9M?!12pp6BRFnu zZcxXOmQtj@gPgnE0HS#hyUcY;wLx?Dv*=tl=3MV815xW z`vLO>UN104L#xID(c~8qfd?am;}Hf<3l|rct6?g`p2RuerzUHiBf!c5@^Evr7c@!C zW}{4FhwMPpLH&v4ab$>#i@SCEHppzWuO@Jbs8|p1n3-8Qxww#(40;qUmjfJVjpTTH z!1xII{R7lzpMT%N;5Lk`RMK{G;!GC}r3RM+=*ZBq1q_?K@BV3P zV=*0m2@$H>+K%pfc6J8t1~W(-EiiFTw-Y8pMol=!H-bfUnM_M4#YRU*XXod?q@<7+ z)SuA;m}ObR{yAiF3g}81b`iQB$T$0^D=C4p_5#VVC$37%AxDiNm zA<#7;Re2Ye`Nc&&xtG%7;uydT8!UB3!I__&no=n>dH~KhR+rq@VWP4=h`zqh_;k^j zc&V@7ON!IupR5-&NW+)onDsF@ET{EO_mKkO}y%s{PJAJqhX$A4h25f zqe8G4!?_3Jsj{l-{K|?b7~@tat5^U+XUJuUxA2QX`bPrg-=9%I&yRqWPa84;R}QOj zzc*y-X~2@qQ@sC~o?BlKHbsd7w*@qZ4kTB|>8KEj;u+w(djJ++FpKXVAGZw*;6b^_ z&CSK))&#E=6tH(tF#&??>{wl$Ea1Q%$N&NBQ3GSp-AU~;_``|lPT1t2*W7P=A(q^% bQ-QZeLY%!fQn%naKol`y>9_fUAHV!Bb}R-& diff --git a/packages/website/src/components/Support.tsx b/packages/website/src/components/Support.tsx index f391b9dd57..6f15c85d26 100644 --- a/packages/website/src/components/Support.tsx +++ b/packages/website/src/components/Support.tsx @@ -28,9 +28,6 @@ export default function Support() { SerpApi - - UKey Wallet - diff --git a/packages/website/src/lib/downloads.ts b/packages/website/src/lib/downloads.ts index af65f19c42..1abafa5978 100644 --- a/packages/website/src/lib/downloads.ts +++ b/packages/website/src/lib/downloads.ts @@ -9,6 +9,5 @@ export const DOWNLOAD = { sponsor: 'https://github.com/sponsors/marktext', twitter: 'https://twitter.com/intent/tweet?via=marktextme&url=https://github.com/marktext/marktext/&text=What%20do%20you%20want%20to%20say%20to%20app?&hashtags=happyMarkText', - serpapi: 'https://serpapi.com/?utm_source=marktext', - ukey: 'https://www.ukey.com' + serpapi: 'https://serpapi.com/?utm_source=marktext' } From 48762db9e419c1edeeb69b0f1f8f2fa350aa8af5 Mon Sep 17 00:00:00 2001 From: Awaker OTE Date: Tue, 1 Sep 2026 15:27:12 +0800 Subject: [PATCH 2/4] preserve viewport when toggling task-list checkbox (#5189) Co-authored-by: AwakerOTE --- .../test/e2e/task-list-autocheck.spec.ts | 37 +++++++++++++++++++ .../src/block/gfm/taskListCheckbox/index.ts | 5 +++ 2 files changed, 42 insertions(+) diff --git a/packages/desktop/test/e2e/task-list-autocheck.spec.ts b/packages/desktop/test/e2e/task-list-autocheck.spec.ts index ab1d5bcb1e..14d76c24df 100644 --- a/packages/desktop/test/e2e/task-list-autocheck.spec.ts +++ b/packages/desktop/test/e2e/task-list-autocheck.spec.ts @@ -31,6 +31,11 @@ import { // proven nesting fixture from the unit parity spec. const NESTED_TASKS = '- [ ] parent\n\n - [ ] child1\n - [ ] child2\n' +const SCROLLED_TASKS = `${Array.from( + { length: 80 }, + (_, index) => `Paragraph before task ${index + 1}` +).join('\n\n')}\n\n- [ ] review decision\n` + const setAutoCheck = async(app: ElectronApplication, value: boolean): Promise => { await sendIpcToRenderer(app, 'mt::user-preference', { autoCheck: value }) } @@ -129,3 +134,35 @@ test.describe('Checklist 32 — task list autoCheck cascade via a real checkbox await expectNoRendererErrors(app) }) }) + +test.describe('Task-list checkbox preserves the viewport', () => { + test('clicking a visible checkbox in a long document does not jump to the top', async() => { + const { app, page } = await launchWithMarkdown(SCROLLED_TASKS, { + suppressErrorDialog: true + }) + + try { + const checkbox = page.locator('.editor-component input[type=checkbox]') + await checkbox.scrollIntoViewIfNeeded() + + const before = await page.evaluate(() => { + const editor = document.querySelector('.editor-component') as HTMLElement | null + return editor?.scrollTop ?? 0 + }) + expect(before).toBeGreaterThan(500) + + await checkbox.click() + await expect(checkbox).toBeChecked() + await page.waitForTimeout(250) + + const after = await page.evaluate(() => { + const editor = document.querySelector('.editor-component') as HTMLElement | null + return editor?.scrollTop ?? 0 + }) + expect(after).toBeGreaterThan(before - 100) + await expectNoRendererErrors(app) + } finally { + await app.close() + } + }) +}) diff --git a/packages/muya/src/block/gfm/taskListCheckbox/index.ts b/packages/muya/src/block/gfm/taskListCheckbox/index.ts index 8004d1c0aa..384750fedb 100644 --- a/packages/muya/src/block/gfm/taskListCheckbox/index.ts +++ b/packages/muya/src/block/gfm/taskListCheckbox/index.ts @@ -174,6 +174,11 @@ class TaskListCheckbox extends TreeNode { this._checked = checked; this.update(checked, 'user'); } + + // The control is not editable, so clicking it does not move the + // text selection. Seat the caret in this item before the desktop's + // selection-follow scroll can reveal a stale off-screen cursor. + (this.parent as TaskListItem).firstContentInDescendant()?.setCursor(0, 0, true); }; const eventIds = [ From a875f6a7f94fded5dd9cf5f266fe45436dbab2a0 Mon Sep 17 00:00:00 2001 From: Pan <64940665+Panisnbb@users.noreply.github.com> Date: Tue, 1 Sep 2026 15:55:07 +0800 Subject: [PATCH 3/4] fix(desktop): allow saving directly to a drive root (#5150) (#5188) writeFile() unconditionally ensured the target's parent directory existed. On Windows, fs.mkdir() returns EPERM (not EEXIST) for an existing volume root (e.g. "E:\\"), so saving directly to a drive root failed with "operation not permitted". Co-authored-by: panyanhua --- packages/desktop/src/main/filesystem/index.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/desktop/src/main/filesystem/index.ts b/packages/desktop/src/main/filesystem/index.ts index 2180b3f819..2148ffe8f7 100644 --- a/packages/desktop/src/main/filesystem/index.ts +++ b/packages/desktop/src/main/filesystem/index.ts @@ -35,7 +35,14 @@ export const writeFile = async( // write-file-atomic does not create parent directories; recreate a moved or // deleted folder first so an (auto)save into it still succeeds (#3509). - await ensureDir(path.dirname(pathname)) + // Only do this when the parent does not already exist. On Windows fs.mkdir + // returns EPERM (not EEXIST) for an existing volume root (e.g. "E:\"), so for + // an existing parent — drive roots included — ensureDir would throw and block + // saving directly to a drive root instead of being a harmless no-op (#5150). + const dir = path.dirname(pathname) + if (!isDirectory(dir)) { + await ensureDir(dir) + } // Durable atomic save: write to a temp file in the target's directory, fsync // it, then rename it over the target. This survives an application crash AND From 921fb2c2fd3fe9f7e5bc33d81ed113d8a9162b06 Mon Sep 17 00:00:00 2001 From: woltary02-creator Date: Tue, 1 Sep 2026 17:00:26 +0900 Subject: [PATCH 4/4] docs: fix grammar issues in FAQ.md (#5089) Co-authored-by: woltary02-creator <315233908+woltary02-creator@users.noreply.github.com> --- packages/website/content/docs/end-user/FAQ.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/website/content/docs/end-user/FAQ.md b/packages/website/content/docs/end-user/FAQ.md index 9b78db247f..4c7803abee 100644 --- a/packages/website/content/docs/end-user/FAQ.md +++ b/packages/website/content/docs/end-user/FAQ.md @@ -14,7 +14,7 @@ Yes, MarkText is licensed under the [MIT](https://github.com/marktext/marktext/b ### Can I use MarkText as note management/taking app? -MarkText is a pure markdown editor without feature such as knowledge management and tags but yes, you can do this via the integrated filesystem explorer and task lists. +MarkText is a pure markdown editor without features such as knowledge management and tags but yes, you can do this via the integrated filesystem explorer and task lists. ### Where can I find documentation? @@ -28,7 +28,7 @@ The full documentation is available on the MarkText website: Yes, please see [here](PORTABLE.md) for further information. -### How can I report bugs and problems +### How can I report bugs and problems? You can report bugs and problems via our [GitHub issue tracker](https://github.com/marktext/marktext/issues). Please provide a detailed description of the problem to better solve the issue. @@ -36,7 +36,7 @@ You can report bugs and problems via our [GitHub issue tracker](https://github.c > _The SUID sandbox helper binary was found, but is not configured correctly._ -Normally, you should never get this error but if you disabled user namespaces, this error message may appears in the command output when launching MarkText. To solve the issue, that Chromium cannot start the sandbox (process), you can choose one of the following steps: +Normally, you should never get this error but if you disabled user namespaces, this error message may appear in the command output when launching MarkText. To solve the issue, that Chromium cannot start the sandbox (process), you can choose one of the following steps: - Enable Linux kernel user namespaces to use the preferred sandbox: `sudo sysctl kernel.unprivileged_userns_clone=1`. - Set correct SUID sandbox helper binary permissions: `sudo chown root /chrome-sandbox && sudo chmod 4755 /chrome-sandbox`. This is preferred if you don't want to enable user namespaces.