From 47e564fc852c393b8cd07a46972706181917fd23 Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 18:58:24 +0900 Subject: [PATCH 1/8] =?UTF-8?q?=F0=9F=A7=AA=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EC=B5=9C=EC=A0=81=ED=99=94=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/test.png | Bin 0 -> 21928 bytes src/content/post/blog/image-test.mdx | 8 ++++++++ 2 files changed, 8 insertions(+) create mode 100644 public/images/test.png create mode 100644 src/content/post/blog/image-test.mdx diff --git a/public/images/test.png b/public/images/test.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb3d1072e4d204df22b00aa3648151bc09a1be6 GIT binary patch literal 21928 zcmeFZc{r4P_&5BWF_=iDvJ@gMciAhURF;woMcJ~Ai0n(&vdn}wV`;OLiV}%z8CzmT zLU-9E8p&2fgzSu&_q=rfp7(v9n>v0@+bI)>J-|bvK=jXg`8lKb@;M>TD5E3|k z?8s?^xZ!{CO++4eX$*v4~HH+6on6QKBslHQBH&S5WFE=&@#|M zC_k2;bq=mKIe7etmT@3%wCkYTrhvziFOVuUy6Feibr*GhC@BQ!CioB3(c4?85TcLGJ z>begrXy)kSd7n*xF1;VTq&At{$Q!8HaO+NTf?)69$L^1}CCRW3_&d9xgTr3W>mefc zx?vr{!;5AOfdVh+)-IeB_Ih6b|9lPG@PD=iCk5N^f5hScPc6xB2h+2vZE~=YS{o}V z67c)$&c}yBEDl_ra`IB}=}LqsrhjM} ztBDrN#nZjz6cmJIWo5%O5t`YG2q^IhapCjl&yj6yZTW}k+XbbLt^p%Z<%HuwiC2#E zlGBJNe9am}IY*!%bVj&fDLx^AcXH|4P1A4l^YeXQOMSx6lD)+XINF43&D(=#e|MSr z;Iks&$0JAil@R0J5wBtzO_@0Q;0QycfR$ray4(EsuFTG2&(-*9+8r++AD=bSc%&JJ z)*xHH-`#W#;_QP=w)9+?|EPuc(!#WvNoap0efH0fkA-v%cFy(Hk`^oB_tDtz-`ag9 zMFhP#P9U2!3kS1V^UTtWt#1OxY`~tSk=7%mUss=`Dpo}&4m{njI52G>&EnrBJN`M_ zve3uU(lT5Op?k()?DUUCkbh{$WSTcL`-Yx=Dpay@L5JTfBKj`hMjZO7A_S{h*R-Ck zgG8wN(l@ZLPESuWz3aH6RL&zr#A_l7mkS@~DW9U_M7^D?C#$%H!yX%Qg|Ioz> zc(OdYE8I83X~-ZPn%Oci@<@Xms+;5DXHBs8w*I>7muI*+~V@(9#Skptx)!Y&kteM^#cAJk~Cc^?(%QFz# z!jxy}6_0O9ProW9xU$A>EnKOK-Iyq?Z)tAcA;{J#v`%_UU&F8URH9U70ROGj=Q%}_63<+STF_I_4W0I`&sm5JMAE zQxWUrTZwLIV53!&-qNe9t0e|~T<=<&oA3DjwRCb=Evzyy%6hdL4vC(GEuXS6ersJ3 ze5q->rI3)1!4unrYWt{cMq6#BkSLP!w4mT9HowlyiO}#|XeyRZ6QvZ}Z9XbjbF7LU z7Z)dCN%6T`gy*%qfxti zH^^p81Utc|ypIL__$k!e-Kb#w+Sm#X-QUB{uh87mQWl~2*I|_@su5)My@hyPKU*4J zS5FC{uIG5ThP#(kKwSLYRc4m7DDuR%)e&U;^>J9wc~A4Xfa&2jo9pDXj47%VP3Cdd zj~_qqi1K^UOqE4aM7Q$0-qJy{MOfA3xz(H}ffIc?6VEl4hT2MXV>b!u#)xmI<0GJy zvN~ALE0dyEM{k*IW4Wq~%rn1!l^Ylw|xI(9+aX^ zpdbjn?wwFwjGr8dATJhIR2(82W%XUExHRdA`)|kwF=4jOkL3D7-gUjs5g9|1f&DcC zo28JZE;gZ)>(~a}d4p$&MARe@52EvE8!IWhgCMSF+G4;EB;>q&33iHh7d!vEpxI`J z=tKHCaqz=YOj7sj&IJTsb2kyj;}IO-M#DJoi7!87e!2nAdgBB2C?0v-qR8oBFRAR{<*AI4;Q2o>qYNsQTAgiK>`#b5s4gCE;%zi9O4_}d$nmk>s_W`D&jSq_lQl>$ zv$KW%XY@GY(gWr(`}^-$tYEE0oixV?N_#G;d!kV7!eMYAZY!{{ZWeVbvn$Ls?#r*#C75eXxMCz^URYST4R$6GjvH=q znJ5G}GkL`0 z!VE^=A|(D06sE^8?uns^@zoWaKW99Mn^Z)+E?p`G=lX|0L5wGnYj- zR6G@4X?H7Kpi)qjAB^A3DbVt|x|WvH{WaZ*OT3#0wE5uU?U?_lJ0iDK;xl-1)QT3I zPSupkxtYOdumZcNb}cyKVNeb}1(HmfQ zKPk&EnOj>6F_q#Imqf(EvOYw&Ob8-M7bY7oZlp5uL3SF4itVD7>^~!BR)-aB-t1scJ=ZATFS5Dk_7+_p5*JFjkB#>3 zh`M70xp~0SVTkwcdOZibQhgIEk~W;CBPJ#cEJ(@tUFI{`5Od${t;Y6j=TdzuQvUj_ z@!<#=Uf_{JUQ({EuDQ&h)^WwRiS_jcy^`yM+FKVEE{|G8TrmpaLyVK)ohTvH5A<{H z2{N3-A~2*9qXQOT?ENu`S@d6+8nO^`ypc(FZO;)XDsrhk|KMq#@&L{>w-TZ}Em^SF z8m(~RBYHGedM}CQz#gw!9WKCltC23BlMn7HKKzK~e)!QD91(u>`lg?^x3{h+S3w>Y zjXl#7TzTlypCd#8G_Hs_aC>S`?nd@ia6I@`RbU-l&XH(5S$G1PyANk0+SyeW;95I5 zIT;_~~Vn*4I08(u5!&JgxqX$&@K7F6M{JmT!2|Fl`v(SZkQs>27bW7#YyRn#q{Z-*&>K>z#aj;H-KPnE0RA z^?A>IaS+GW#z=rlQD(4>3_6kZ+>Mhq+Cs5_4QRTM3r08SSSOjAlG^$0TaJY8nz(C5 zRRgViL&kQHJrc{=6*)J&#vnW{v$>83d0!stV4BvMlQ>%frZJ+yHisI9`{gxGRTZ2Y z^jYzRsqmNsaoDOu^pM4w6oZ2*XGrCjr`y`IXfL@?2siM1OBT8u`!1{g}bCtVfsE+t7TySu37~kcdAJa1i z@ksUXu*)c`ug?zmpD>(q=I$A4eNH`oV_d;PwYaE=N66ZtC*dy5dcTEHtN*8TpRz}a zI)$BTGYgBar8gZu+njLdaRy$$+SO~KuNse1a${I?ck#$pL~t(6XJUpgd6P!y0peU{ zrJlI1pJ_yh!_R<@%qQj>J`1SNF8s=+FZdXAcly@(R_~q01a9f_8)3+IFfE*V09w+~ z3TDKmHfU+A>d&7)S;BR%rg!7%&L*>QPb?!Y{upetBm}gLyI!qeYqQ+hEiF*#Wg!F=#&%P~vJKRfZs9n6ha?1I<- zoNoN_F@g8V#hp1t6EC&rkquaf>lD zgvdo{17@yn%gM>DwAeel#gV3SHJK5+y?H@Qo-s5nbj~}10!}gtvlM6RW~lNNMo)x_ zi5?&LvUh)_#)3D`UE0SftK5PLQAY9%L^JAM|4yv@TA;HRGC^QVdOCZlb>y9NOQHr~9g@%zSif2_i-r zA1pu91wGc3wTAuocUuLU$_CesoYKxbKRKGnRZ?DV4f*&c7^q41RPrHt1yY68Lk+Tx zo-^+eqInu0_|RayCQ31jkB{f+Jip~wWMgaEwtd4F+pPBU=B>^ZL5ydZblBYFW1NmS zE+!_Xlhc~wiEZOY!;JO91ODt={S7DRXtVc&j6DYBgMkDCO8}ZeCuRhJ$j?>^U*GWc}KA=P%8jn=A_j)NH6ZCZE!t{P_3o zKl}*QVD@o)rk+xa^zFr&J!=QVRjjHybckm!;pPx}@AIdOzUg;gKV}a4?h= z=#|6YSLosbX6jqcqfXgRQ5vb>aFz{SlbF$jnF9W%VTP<$ht@Os2J1`|mG?>p{}pWH zSXrjB%~(l&W8-Q^jm+%?wD6yk*#7hV?Jb41^KBz<2Xj+8dP>B*7%ygYC2w7vse!D`~TvAZt z+E_*A!z@)?3;W%lSo6Bda_Ll13_wOV!rn+YqOB(LOzw0n&@ZJ{!9tNT90$rkpPIM!bz zpo>zlLFv*02yAtv_z|glJSLE$ZZys`@ofGhUYsFC&3skv_@%4V=Yo==m%V-J&s1gO z=s_3eM~%}U@FCHCg$;h8+fb7tXtS+MOZ;c6%+3~_O@g9n{98{Laf?1V?RLNG>sN6? zxFE5HMNd~!!atuYTQK$ed~KM1nowvGF!l{>{%Z`J(ARl=U~>W=BjZ!n#(?8Tf;o_< zNv(`BRLZ_LV*k-uER%Dh)TS6|(lM!jacr>XN6X3khpvSaOpM&)c_`i<_vWvZI-Qv& z9aG)o3RvOa#cj_{Khb%iY==NZ3-S~f3{LAcV}?B_Q!(LOC6ZcaMn*?R!R>woL&f;? z3}?$c)VbH7w>vaz`sp8cNT&RM=T+sNb+w!(?Hm;Nj5IZt2QR(&pMJJi!V@AW-+KJvlO76zJ=*uI>}Sz zOB;}FJT~EXA&aBM;qIA(jme7aSq{6qFxRhCK&`yH-*g0=%}B;YDt${PXJKo6<+Dkt z#TjwPZ|`89tAx(}Mc))b=_YeRCc4?3WLeBMn31S!(vPeaBgD^Y$<;y9LA>AA82LvAWl{zI2`)#c0ni0>Pef#!p zPVa;Ix9Zi6H(iv}M%1)xhHD{tTCpByyBZVarxo)9Nlb47WpmhLm%O#fy2O?=;SS~Z z)D!9F?3#7z3SId)Ejm&mYjXV-O8QHkI)6##TAFOw9la&2LHWpe&k0WlI)7N7Uu23( z=!-SQL~a}<`95Sl`ky2@bG6Kgo9q7Jk^HDSVB)Oq)EUjhzkygO@a0>2a$2q*L1oD8 zy~>Tu`b_UEj+(fjQmtEa#>?pT5ddhz$=7A%aXpIvMTy!9HgC+6xB?;M>w9~ZKfEzj zM#lQu#P@&io;1cCO*C_#j~*YpE*aV}5%TflM~GI3Vs0OICxRV1kq8eIGE4FKB~ zLbkL~zjIr>UVnYIvFDxr4Y0X70FSB^y>2+s+80~IQ_;NJLa292D{TMf?!Z;2n*oNb z^OPe$R=$apWcH7Bl?@i+QUWlHZ~MUF7(G`aVUm-1F_GI`rntNY5Nc`L8!1m3dr1-U z-dQfLvW^k=hC)UsUEB8>nOp`JT1hX>U`COYm8~y0=nQ9=gri&hI7p**t=@DXLxMj2 z*)qC2p{Q4<`lLljo4=sc5p^G9@igh4DB<=)inng0q&ZLMS`JF7bhXQx<*fHTRch;K zzGer3kP^GB#?Ry#7aAYCvntYM7{qIirJ_A44}>?|lcyV9^=@)T*j^Kv z8NYLS9@0d&%y;rx0q!e!QWTeOpj?l{x6AlsZa({F^C{KpqJK+$2K|>V6CMaEPx*b( zHHjcwyDS-Gah_f*h!%_dl3en;Z_vQvl6Y=N1O+wma)z&wJi*zn>FxF;FLs*M=Ck@+ zPiaUjED5rgx;cwvSFS})EoV+LeEbLYmPD(k&#Q7A^N8P1kr&R421oD<%DuDa1aN+L z3x$Zd$BofBp`%uB(#dmGl94KrrcEWkGuew|&RBVFPo2?OKk<*+CpeR2c4Hs7)@+hC z0rC2MuT6&Nn0E?NO%eJ+Tds{nEsL&5XI*U62*AoHaydjByHFd;V&9_H>Aq=pBPN(u!vbRP*`%ZDXYg?l@ zx`@FjN`hoozocueh=P^qP@_(e6QJJUhQof}n2&az6UlXj%1+1Ehu6qPOG5ls?@7jE zHTsOqx%+1%bkTny&BVx;0_KDVzvk(DwJq*x*4EZt&FQ-8I_6?eEKCSwcek|Y$X4Gk z`UGuv_cMP2-&0-EXArQTEU#S& zVU5HUfl(zn7PYBJwwGktdGCHj26}1pd}8t_gjuCnJkC2)uiE`7=F~$qqY+)>g*2az zYuu{hIe@Mg6}J2qW`CLM^xPGi@C9$4YZ*c{IG&LjgwBk@xo+9L0oxDup=AC72#7+{>a0v>05;ACJxS zHBG|?`2zW{c!wf+{v&guM2vEM=i%o>b|!P<{vVmHxm8RiGv%$EoIPGA4t%5PI_D|Rj>#4s{L7XZ}*=+uf}6B>o-(J(t?MPMmC+!wi}PSSlyp3IL=kr+l}uWWzsTF*k`?-||-D!Lv!ZR+0+R zRKWE3%Ckw14S8wWu0@&vi1*ig(XHCaa5{Yh^-0`!MLI*TUnLKX(5j3ZuIUf1i*GkL zqa*cBQLqImEp6aJrC55+dxwW|q2b}q^ljf>>dIb_$t;s5ep-8ApCEg$iEg1hi+YJ{ zFxvAY_$}??`V-z=#?^a$0Dr`zi&#Bp)mC@h-2+Lf;_Dx}2s zEKvs)9;LPyxzim!dbYly6A4K<0z39v_XFV1B;(#=5QW+;uzhVY|CAHXCw67Nk(L73 zpBCSNQC zxVcQ*KTn)*9~f7(sdAd|u=r_Y!y6x>q))q9yZ6w`*M$Z?@;KX#u+^G_I$nF_G9p!3 zg5p?OK4R=~+T+1|d;ECr%LTn+7LPoAByDAEXK*wZgNBKy+`E~Ez&(-$Z%zxMck>y< zH-LXvlI~R=lQVqbqNj8^dqGbmsk~ZO z*#uS9jTgAC5$R7iDmjKtXG<%|4B08zMWi^JSeKgrPzt{tc(AYVX3_8TOnS!Lx^H<2 zPV=$jisjcnjCV|PX?A0AsGH7>^;))PEWK{rw-qE#IUKdEYoU6{TSu(Pu_?ctQE5^7 zY_m;l`f%OulKh|H7TOUg+%rP?fSrzs|qqbiv7FS%*uvY7O*?? z&T27@yEf916CXD&<<#=D9;$gi^=B>3c8j>1dho||dQ_e^POWY)Q;}8rec@|&S6Cs; zC^CcCZuh(UWn9wP0N2^*_S$Qtqk`>$Rsh&JTd50rtrmm&e2Db25(pqtMetdg0c{(3 zs#!PO^2<~4&1Y!wzg4y<9nmyt;B)g46`g&tvaOH(TZkobRL8iKvh{Io`e;SlHp!|? z@^{qoz>aVuhB0IvA4I#$qRy{hYA#p3U>K5(mw%)SIV%VBh` z5qw8Zx1^S>9M{d*R0YCKDW%M4>GcPouJ$SHC1gZeS4m%s(`8;~5;djGsRH!tLNBo# z&~RFHEqWSv=%iU&Mu{O)9g2{N z|Acq3Oqub4e*_tEmA1j5f4=`~XC*kN(W|f6m&|>?dn&R>?HDpIO#Z+yCXgIl z`|^aV=gK~IW<2fN>9_$<#~+5_^peJ1|9G2^2Xu_S_qC+`RISgAVsxgH{+7eVJ48sq zyUg>9HmY10%hQ)ZFC!_kGF%^r-&CzVM>1}fa7^;tArd@ddc~nZl2@?uV(YX}+%p5A zD~Qp!EP90@t9q32jLeM7vLYAX)jIQp2|kW1;90Fc#h)rScjMN@kdUs^JTu#Jvdm|0 zo5sakrUrEO2_V*0ED5_2&>d1d*AEH7aEZJ-BY#P?2qie?r>WtoL>vUa2Z-_?`n?^A z@zTmvhN3X_-Xx*ZP)pTi{6Zx!uVC*2;HF}#OEs@z=Vk#_G=P25e}{!{eV*(APa6r{ zX_7H+Q&ANWUB8(k7Zx>V{_S+W{x*CC#BrQ{sqaqqWp1={HF8Dg_VD$G>Q*QB#D?E! zIv~S&@RlAl`}@TXZptof>u=sr=^--v?1yIQkSxx0dWu|sVSwwg!Qv<^pb`t-)OOcM z=gamW_nGLt-7@St`~DQWFDI>ZosVr2A`7zbZ&`u*=Yh|sgfp6${T4LV))042IQ6E? zhxEqPmS3)I5DGEqC2e3GgyPR!?G+tA=elXVDth9joh+`u0P4EQ-s_T|W9UmWou=Gp z-OaKezYGmE|4?56<&;ep(`GzmqYXO}dsF%@Q(boowV$OuE~`Pys45iBg4`{*McuRA zi3P8F052`yT%!Qdn!^q(~)+pkSbPLVAv>qOT{Kc<)v9f%s5kojmdO`$ZR#n%eTk zM%;6iypo?9LI91lxT5PdPGIWW*5S0>7hPlaUiXD)hl4qL zQQ}JMT5lun#A|1p`3`*4%%V0xSftJ#Nb-zyrpnM?bp_;dOTHD|?%eSzwxmItb>3wiKOEIQBq@`iA>VgZ6d=JuaJy^17_W*Fv*zYbZnN^Td3N(* zQrC`0x+-c9rn|J3eCy*u`j0Vbez01DT**P^R3B{|I@b7We0`U#)O=X^{L9A78IuEEwTJ>4N}RIz@vKs!ZxH z(J^0F{HOlnC97|l4;td0hGo5o%o+;5>~U}G#cQB)#FSbmhb|0BMJ)DF6>T2L9%d|? z(t*z7df_$BoY_^w*~Q;7>rX`OqhKkC_Zn~aBXh4_zurH!|K>ijAR}YWzU9NdyWUG_ z(oQi=U*2e-#GJqUG{^1Q6;9z)Tg5{)*&C<)tXtzdh`rL|dI^*xg`M4;rEU=*y(y+| z8~9mGE?bYYB*ePMed~5giy6*XitJHz%ogBh_Z3=@NFod+p&$N3>B*jgYOeF#lrM%5 zQl44=GMBFxUkr=Y=4m>c6Gd@m52@Le z&U0S)}yY; zAv0e96_mC)nw#e_$noqpDNX%o5@p zR0~w+tbTQp-ud?sxir9dG3Psk#pQF2Rs=SU7F!DmQA`982K!V)uoY>vf}I%GmC1I4 z8~HI~l36(WNzVfVfA-znCI#9cKGb;hy?8r`W>+?oSd_SL-^*8xaE4B+;S5&_R(9L? zw4HGHx%Nr&iG+!FZe>Ikm~pmaZTo_ifT#%tOQmfj=rc^$YK^5w_0E0ajQ-QV8@mpM&lN49_W*R?BW9p#5~=$uqFrm_g4U{$eg&p z=K@b}JD^_X!Sg>7s)NSL+vf(QiBTJ_IEcB`t*MijqR!ti8S>#SFl4`sY9_w;bKw~& z5^0u6%uoCS)2{Ovt#C;4e3QSo)@1=RW)@zvV9VEorEwk&k{($cDQI-rGvU8(w4hl= z?3^8KEoY{fo*g0|R;_SjaNFbL(+ARtmNeWR*{Xr1>c*Omaj|}=_+i!WCfSMY{?5+M zKOIS2BNt?u0j=D^6U>JPgNh~=KT0Wu}a znPkf)<0!wI@GCVvk8IPUpZvG|~XJXVW%}RPioXmV`2Yfh@r+epA>GSnHg{(6A zVwnVW_fbKzZo(0r^KmM+j^{ew(EnUW8()oH>mZ`0qMMuB%D2GyaNE`2D8~GvcVQ;_ z%okxxO6ncOw>OAf_NKP2Ew^&?iY01&95)bK*Iw!Nm}K`|NF&`rnzL_Ak>-Fj%k{w- zp*T4pP+n`7ykp)YC|{mN9BavQU2oJZQv9d!XxWHrckr2Dz^Zdq2L1ObQEP?cV%loQ z+ssI#Sqp;xXA~Bd##W<0srWUNmje78y9Sc+DoU`xGW zZ#^(R{%l4BDc4;ehk+DT=%dZ3vY)T5+$+!ZqQN+#Tv>kp#wCi;HUabIzY z4Egm{`~6Q(*Z+wPceUVoDv;=1t*F~_i3|>m8{PT`MlDy8BOD;JgY$v#suU7W)^F(a zq+6?>l$AZV-dWb`HPB4oUx$tUc4LiFrp;+@g(AD%2lH859+@N*z1sbncJZ{B(jt~5 zG4msx(0gDPLV3B=Y{>4`8m@6Do4G6W+&d6Bp5iY)N(bvN-y!MF(0>b2#Hd;*`#u*D zT>`ACNnO?B>kbuFRjPe$Oj|>O53auQ!5ig=rUT2_BPTRC+IACZakURE7af0Q@8b*38k~M6V`^6&5lYhZi(+uOH3}r7nXZ_h%`w1p5A$?!cH@4_fQh@HX9rGWi?mjL^k%jyS+rbh@$_h950o9wpR z*73Mmta-Z8tAw_s+GYOn`?E&({XsyFTmAtN=vwlXAf4(Jrlwp9a&j3wED@ut!eY)@ z1WM~aU5`TGL@H5IETI2qW!PGnp360RXtlXI^h(FJj66 zP{_aaVESD;t@?L8j}=1{HtYo>@q-H^{R;&Mo|3ecwYE!#%(&8%oa8x)Ie`2UUcM3# z{X4|Wi-!Uow4KYGYwWP5j4W_-?8Pw=eKV$=JOYL=Krs}q9je^9xw)!E+`1pV2v>mO zr$agrG~=ebI0XB~mo6)S?ALkK*%6@23Ia1tIUJs$ITi%t}&<0L(zbuq;?XIg0givQ(ir|-Z-)y&j%BmHsbom=39(*0j9 zcos=}864K^q~PEr@Qjs5nnbj0f9q-2anysIQ3h-vw${31lJOCVoPfDH905sTG2{l> zgou?{JR`$*mI1y24)-L-QBk{n*zS6uK}$O~$O2UO8Jl-x;e0IC-f7_ISsLAs208km zXF@?}2@reAVP&{l0V1ov;x;>;2r9nZmtkR>yKOU8_XL(_q>A1k$C-2RzyM$nhS=Eg z9qz~9W1T6WB_a?+gg18X5V%i6l8*y_*W=Ew2U1OzMDa9`yS&{;m&mx%VTLlR06jYhK=7kB*dPt;dwU?S^IC?rmQn=qIlyf$aKs%8!c3$lwjf@} zzxH0E5qMl$_7JIZc90byK`Xp*CI?b=i{4rYGog<+Er?9`@@eq|0&vSmbKe{#j%CgICM)DCxy;qO-JFDZ8bGVcNsYE zy+2PLy=RJZ;ey@_5$x;lnAhu14m<5Xe=d3(3T`ryMO(~Y;YyZTWHhOoz(~cM(FUqY z4|L3YZUC21Rst;r-fNtvlV`d;j**`G-sVTk4pwu()Xa=`4=&4YQ;(K5gXU*EO;Ua4 z&XhsNb@9fv(11FR$=E=jz*2e8?8d_kC*E(3`V87deQsM-WqJJZgwiI(pS zctOzkaH;#p!Lr+X@`lcgoE`1J-}1O|qQ1X2w!PsC&sWd?aehtfsq`R@A5DtAf3B_cT(hamiemv*C0?dJ?WQZxlag8!T?RAyFaP z5Z7^VNctA<>P_p{5Ejs_=RmTjkaq!bsbqA!J5E^CH&#aqEXh-7ni17w;$PzPf?D`A zaiGxO2vA=#H%9*5Ks|8DwTyV3zmkBKx1W;#Oo-yFzO(C=Db9ib;)02j(kt46qRhWP z(`kO{*1w^-?GSc@_btP8I1v%wGZv*U@OjBG66&VvCppnv=n@<_+M<{B4u&vmm0r_( zit`ND116aNuP3rSFM}op^)y@B8&!JP`}~HDM=@FaFSJs6r7Si47JrL&qPeIuIn9JJ zfMy!8s4mdeH47S~{v$J^O#mlBs}Alv5C9ANGte6l&=oah)#$k9KRCYpZ+o8qhDhS#+JV0(+os~Yt&2%dx z=z(#lYy@2&dZ@e5|LMh^QnZI1sT*n z#nkqH?y_9HD{H|&G?ht@4Sz({Bv78&?K`%AwIP&_eKE_`AtFSXSMwRrADxc!_sniF zt`=ut?TV!thz1G4Ys~J9>=X!pO+#A+WZX;Kg*V&A$!MN#=6eIAK=lCVUEra0y&Ye^=2e)un}1hwC_4`=Xh|(U@Jwm<)gK1XOdg@QJ9timj@pOxYWuZ=e0g4 zNjMCM?i7ElP?494ABV)mME-ax^fJ7Fk7F>lVbJiOm5f{8NJ12K9g_>tAN7LB0e+xn zG5Ax;NE#4}^$)ZAFi25iIUrLu0^8n&6^&k95Pa{njMbXr-YaE-`?ZAGYR=G5?DlN5 z9=#HSn5IbruZg6BfFk}eL6P4-GKI!ekchiegxjNkMyLlEp!_H$WOwLQtOLd+N=mp&JJBWphtqYQ@dYy@~!rK{=H2J zPrLH=d%7iN9NUlSxD~Bv85Q$(D>3M_o~I^q%|RiGzCUJpQD@JdePOZ`XF_pSf_fF! zET(iPV`WxR_)&_A9E$Q91A22coHoxno39@lFPwvJ!N5P?kIT#H%c4TGI)R5WVNvBF z{gZ0BmtbXS2`8(mhi%PmFg@YCt0N(Y3L3ve2nCX%L_{zYZfmR7&knMe7OUfA&1@d& z$#z6oRHZeV>|Gggu0@8S9`JjmHix!R1SKBCNJzI=@;CJfurXLFNi+2iFahan;>eJJ zWIfW$5~?p0Q;m*eTKovX6+O}JqrAPmyK138MEpd8)FyR z-#q9SG0}2xFx=lc1|+R$vdRE&jI<2LZdawptOh=(grgh;+$vY0WN7RoTLuGK#yv7H zGul}VC~a2%T)?BEelAq-98yQo;{->e4WlCfmX7J zD;TdOxB_|#6LF$XNM}RZYa)|<*LfWf#@X)iL0@9$0?3$2!#cMcs^v7{$ix-o8Q@x; zx+r80woo$oLzjL5foHL6%tnGdUddbiJUP^&NzNiYtMd+UnRh5ToHCl8gE|J&*%c2!gabrc(g!p?@O((}yQj0<#H8XuQQ{~lE zuEDPlgHGtbgHur_-sl5MW0~fj-DXhyNvHZ5;~w;SDQYt^&DRtD%A=R9;8TkCQ;PE-eUQ7vjsS&^`T?v_}7Afq9;#RJcELF4SZUfGE*S{Iix`Q?R zEJFy(J%~Mw7Q>&AtST};NZ*=R4khH!dE@0K!2R-eFk_5ye3i;hktrBTV}dxZ*!ts7I!o;yGToIq_!CD^r+!wf-lzHiWtib zajv1$i=M~D#sgbQZwg;g$^`y@+W)vz(GT$$HKyX?U*y z2sDWLsY0ShZx`V-fZu}t@-0U?L9<+HowJ-Q(|ksy->r8N5b;@OUu3`Yv8>76C>d)4 z7JV#(`XiPW``WJ#)7N0Qi3!spAi)$DiY2m9eVG5Y$3fbN)s8xfX?$`5ZA`iHTw%)* z1%ZGfO(q*FAP2Bj_QZ!FcjKDH;Ao20R*+9g^%HT|7gN9 z_m==SWHUmh;UNZnlZ_gR(7wDeYqJJ>uD=h^V*_0O2~}JYwp1+ks);WO_b=sEb42Ml zN69R-<&%6kz46eZTWve$f4%}g4J*j=b;OnwWkT=X-y_S10L$76osQ$7kb)<4nt6>z zXFI#u{!PO{fbeOJw;L~sHZ}r;8{lSe%^OINU##J;|5?vc^S|M(H$~t-R$rq zz7t?|ppkx7Aq+}u)5&w!$)d*leix2^hb@QaJq$fO(viDGH|A3e8LXy6CHRs{SZ|sA z`xgMD3wa3oSNBoZn0N`^N}I%$$!ODaD;8V~zo>nP?{}JAf<{H&V)4Ud1?=?>CI#POO;<1m0)9sjT)|C`+%&o31hqy|c^NYNci&czx3fK{3eG7oB z0fk_=VUJI!0Z>ETyYI;D@PKcZp3ilSh0YGEZMtCmkDok&dP^}=WD7&wA;~);R50{t zVJaimS&vIIiGs6L!A{D&#c(H(;nSh`-uzUcX!L`_CLo)NzNl8+OlRRL}Hwh0%#ywoFmSPZdg9-%-F} z_|mej+y+TBx)Ps?or5qs8MNUTYe|r$lQrh?;Y(=d($7~IP#i{wqO(MHC1RXkdWw*! zk#UB}4|AB(rOPIQO$HVO@)$5_dQ_m8b!)FS9o~2tUfsb;{e=a9%UtxRtuj3=MV}sa zo=Pn*l99m&xPFw--8&~%^tB%o(w;HMc*3`BwFvoF2h0()a3GY9aoD4_X0tzf%ZtACg8Gmg@WNyf33d2%W5nTfeWb3NhA(j`;e z(ZKyD#si?frj_Jr5klMt=Pi%NQHHQk7kV`r7)V{Z2r?dEjQd@ff%T-v9$LsqOiB{l zIk%@f_7H}YPGK~++t1=Wccm%>7?@C!$?W;ZTu9y<8ru_FfwdtPKou4pZK>sBG#PUz@=%<| z+m-(@9Oot9Zdfh!e-Hb_G`XlXU2mV=W757>#X~l40==EaMYNpVriGyQ%gcOuG`lA{ zCL{~W;RB!P3t4n{lERNo(D#%S(#pNF7rMEtYbD86@cfzgrlbrtOd{u?6_Xn&Sz~g) zH6#bE-Vr)&Qe~?UEaW&mY2F} z^yt8)SN?K{@OMLlPIQt}KV-*Bceq-Ft{t?itc3_iW)3>F{jf=PENr}3-Opa6a~7HX zu}V`w%P8lTRCuh$%{q~9L1i(5nJ3G6QMF-Qhk{ODzV3+&T|9b9& z(;>KHGLBO00aZFQ6{qmi5EpdNaxv2P1)|jD2sSM89M=Q`nTxtPk;61la>F@Iv;L_a~MH(SW6eb4;F>ane3pz|i z&?21pa}E3d9vlz^vU2x452!l!oQD7HI(RE(kJp43^geNUD9ChNYq9uFGhjJs!I-$H z3nK{sHx#`7zb=9I%QNwJ0Ox~zG1RRCWBdM1#o^okuSbF9WkE&wa}4H-koY@59b9Xd zdyXkXSmaptiazu$$S54jy;_`=E&O)!+@Pyyk?J7i*S!`!w&F&|1l4#B=(<#!hSGV4N3mCq!{sir`6fOsG{Mx z824VlQOx)PeT11WqiL%FAtezU8Bz+tgVMO+;iEbZ*Wa*o=3WCX7_d2+VTpLhnb+g}zyeo9HQtLeqkWJ_<;I+PwBN+)weJg% zS&aBGa-3hu%TU$x+e-<44zl&fdM{^g@lY%%n^zm%He&}tR5p|~+141a&Lp_4G1a2P zImOVPt&-1PD4AMNSe052qbR8o4h z1jw^F|7tLd`~URAQ;I0oN3J#{c~+cNpB>cTl%n*kouBlo%3a>Ka|^N{Il<<)=NUw^ z9cO6M)!EDiF{)Q-9 zKd5y1KJMPpQhKGVP`I`wc6u6P^@`)+Kq1qe$!cIz8!?sF%xN)HT78!YzH{&MPkduw%W5btN;X78U{vo^3ZTnGcD z4V9<{&Z`FNt+dx`p2$8evv<{9t*=c1{0t``4&24!!d_cp-%-+UxBWHa{oPW< z;2;mmV^*u?Ox+$`5H2@8KD&5AxK!9uarwnUR~PXxG<*b=5))@IT2!Vsh|hA`op?N! zXgz^tg?+hKdJZOJvWz5aATp8nMaJ>E|t&lnk=JcSfA-`oUOR7fov)}IFyVq4 z4adYD-UptTQV6WM4?cg|vp-0xZ|Ub}ms*wD7p`p5vsGWg%%H#y3~L}baYG+?pbD_8 zjAn8G(ct10NF$fpKrYszlmSwxk4le*8d4oUnjEN|9RAh^Nl8hWu Date: Sun, 19 Jan 2025 19:02:52 +0900 Subject: [PATCH 2/8] =?UTF-8?q?=F0=9F=90=9B=20images=20=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index 36670e7..f5d7e16 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -2,7 +2,7 @@ name: Process Images on: pull_request: paths: - - 'public/img/**' + - 'public/images/**' jobs: build: name: sharp From bab6a7e127e4adc1b81bd9ffe4d50377219a6096 Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 19:09:57 +0900 Subject: [PATCH 3/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20process=20images=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index f5d7e16..3c3d2b1 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -26,9 +26,12 @@ jobs: - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' run: npm ci + - name: Build TypeScript + run: | + npx tsc ./scripts/action-process-images.ts --outDir ./dist - name: ✧ Process images and Report results + run: node ./dist/action-process-images.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} GITHUB_PULL_REQUEST: ${{ toJSON(github.event.pull_request) }} - run: npm run process-images From 9d2b40b2920bd127f4a94d236d4f436bf290a161 Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 19:09:57 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20process=20images=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index f5d7e16..b657735 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -26,9 +26,12 @@ jobs: - name: Install dependencies if: steps.cache.outputs.cache-hit != 'true' run: npm ci + - name: Build TypeScript + run: | + npx tsc ./scripts/action-process-images.ts --outDir ./dist --esModuleInterop --target ES2021 --jsx react --skipLibCheck - name: ✧ Process images and Report results + run: node ./dist/action-process-images.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_REPOSITORY: ${{ github.repository }} GITHUB_PULL_REQUEST: ${{ toJSON(github.event.pull_request) }} - run: npm run process-images From 178bbcda3360593342542d8f7fc775b234c95cd6 Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 19:24:20 +0900 Subject: [PATCH 5/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20process=20images=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index 3c3d2b1..b657735 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -28,7 +28,7 @@ jobs: run: npm ci - name: Build TypeScript run: | - npx tsc ./scripts/action-process-images.ts --outDir ./dist + npx tsc ./scripts/action-process-images.ts --outDir ./dist --esModuleInterop --target ES2021 --jsx react --skipLibCheck - name: ✧ Process images and Report results run: node ./dist/action-process-images.js env: From 89bcedc06679aba9557cbf77ef0f3cac75c85e2e Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 19:23:13 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20process=20images=20?= =?UTF-8?q?=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C=EC=9A=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index b657735..bf99b00 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -29,7 +29,7 @@ jobs: - name: Build TypeScript run: | npx tsc ./scripts/action-process-images.ts --outDir ./dist --esModuleInterop --target ES2021 --jsx react --skipLibCheck - - name: ✧ Process images and Report results + - name: Process Images run: node ./dist/action-process-images.js env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 0dc906e493d83a3d7227240167c7d76fb93a3f9e Mon Sep 17 00:00:00 2001 From: deun Date: Sun, 19 Jan 2025 19:31:41 +0900 Subject: [PATCH 7/8] =?UTF-8?q?=F0=9F=90=9B=20=EC=9B=8C=ED=81=AC=ED=94=8C?= =?UTF-8?q?=EB=A1=9C=EC=9A=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/process-images.yaml | 16 +++++++-- scripts/action-process-images.ts | 11 +++--- scripts/github-api.ts | 52 ++++++++++++++++++++++----- scripts/sharp-api.ts | 2 -- 4 files changed, 63 insertions(+), 18 deletions(-) diff --git a/.github/workflows/process-images.yaml b/.github/workflows/process-images.yaml index b657735..7782c16 100644 --- a/.github/workflows/process-images.yaml +++ b/.github/workflows/process-images.yaml @@ -24,11 +24,23 @@ jobs: restore-keys: | ${{ runner.os }}-primes- - name: Install dependencies - if: steps.cache.outputs.cache-hit != 'true' run: npm ci + - name: Create tsconfig.build.json + run: | + echo '{ + "extends": "./tsconfig.json", + "compilerOptions": { + "target": "ES2021", + "module": "ES2020", + "outDir": "./dist", + "noEmit": false + }, + "include": ["scripts/**/*"], + "exclude": ["src/**/*", "dist"] + }' > tsconfig.build.json - name: Build TypeScript run: | - npx tsc ./scripts/action-process-images.ts --outDir ./dist --esModuleInterop --target ES2021 --jsx react --skipLibCheck + npx tsc ./scripts/action-process-images.ts ./scripts/github-api.ts ./scripts/sharp-api.ts --outDir ./dist --esModuleInterop --target ES2021 --module ES2020 --moduleResolution bundler --allowJs --isolatedModules --skipLibCheck --jsx react - name: ✧ Process images and Report results run: node ./dist/action-process-images.js env: diff --git a/scripts/action-process-images.ts b/scripts/action-process-images.ts index 535395a..1a821c7 100644 --- a/scripts/action-process-images.ts +++ b/scripts/action-process-images.ts @@ -1,5 +1,5 @@ -import { createComment, createCommit, imageToTreeBlob } from './github-api' -import { sharpImages } from './sharp-api' +import { createComment, createCommit, createTreeBlobs } from './github-api.js' +import { sharpImages } from './sharp-api.js' const formatByte = (byte: number) => { let num = +byte @@ -25,12 +25,13 @@ const formatImages = (num: number) => { } console.log('\n::✧:: Generating Blobs…') - const imageBlobs = await Promise.all(sharpedImageList.map(imageToTreeBlob)) + const imageBlobs = await Promise.all(sharpedImageList.map(createTreeBlobs)) + const flattenedBlobs = imageBlobs.flat() console.log('\n::✧:: Committing files…') const commit = await createCommit({ - message: '::✧:: process images', - treeBlobs: imageBlobs, + message: '🖼️ 이미지 최적화', + treeBlobs: flattenedBlobs, }) console.log('\n::✧:: Writing comment on PR…') diff --git a/scripts/github-api.ts b/scripts/github-api.ts index fb4ac2f..8a54201 100644 --- a/scripts/github-api.ts +++ b/scripts/github-api.ts @@ -1,8 +1,9 @@ import * as fs from 'node:fs/promises' import { Octokit, type RestEndpointMethodTypes } from '@octokit/rest' +import fg from 'fast-glob' -import type { ProcessedResult } from './sharp-api' +import type { ProcessedResult } from './sharp-api.js' export type GitTreeBlob = RestEndpointMethodTypes['git']['createTree']['parameters']['tree'][number] @@ -36,23 +37,56 @@ const imageToBase64 = async (path: string) => { return base64 } -export const imageToTreeBlob = async (image: ProcessedResult) => { - const encodedImage = await imageToBase64(image.path) +export const createTreeBlobs = async (image: ProcessedResult) => { + const blobs: GitTreeBlob[] = [] - const blob = await api.rest.git.createBlob({ + if (image.convertedToAvif) { + blobs.push({ + path: image.path, + mode: '040000', + type: 'blob', + sha: null, + }) + } + + const filePath = image.convertedToAvif ? image.avifPath! : image.path + const encodedImage = await imageToBase64(filePath) + + const imageBlob = await api.rest.git.createBlob({ owner, repo, content: encodedImage, encoding: 'base64', }) - console.log('✧', image.name, blob.data.url) - return { - path: image.path, + blobs.push({ + path: filePath, mode: '100644', type: 'blob', - sha: blob.data.sha, - } satisfies GitTreeBlob + sha: imageBlob.data.sha, + }) + + const mdxFiles = await fg('src/content/post/**/*.mdx') + + for (const mdxPath of mdxFiles) { + console.log('::✧:: Processing MDX:', mdxPath) + const content = await fs.readFile(mdxPath, 'utf-8') + const mdxBlob = await api.rest.git.createBlob({ + owner, + repo, + content: content, + encoding: 'utf-8', + }) + + blobs.push({ + path: mdxPath, + mode: '100644', + type: 'blob', + sha: mdxBlob.data.sha, + }) + } + + return blobs } export const createCommit = async ({ diff --git a/scripts/sharp-api.ts b/scripts/sharp-api.ts index b5b8318..55182da 100644 --- a/scripts/sharp-api.ts +++ b/scripts/sharp-api.ts @@ -80,7 +80,6 @@ export const sharpImages = async () => { try { const filename = path.basename(filePath) - // Skip ignored files if (CONFIG.ignoreList.includes(filename)) { console.log(`::✧:: Skipping ignored file ${filename}`) continue @@ -110,7 +109,6 @@ export const sharpImages = async () => { const avifPath = filePath.replace(`.${fileType}`, '.avif') await sharp(filePath).avif(SHARP_OPTIONS.avif).toFile(avifPath) - const avifStats = await fs.stat(avifPath) if (avifStats.size < afterStats.size) { From be459e803605b7c463d623ceafdf2eb22b665ae3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 19 Jan 2025 11:48:36 +0000 Subject: [PATCH 8/8] =?UTF-8?q?=F0=9F=96=BC=EF=B8=8F=20=EC=9D=B4=EB=AF=B8?= =?UTF-8?q?=EC=A7=80=20=EC=B5=9C=EC=A0=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/test.avif | Bin 0 -> 6319 bytes public/images/test.png | Bin 21928 -> 0 bytes src/content/post/blog/image-test.mdx | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/images/test.avif delete mode 100644 public/images/test.png diff --git a/public/images/test.avif b/public/images/test.avif new file mode 100644 index 0000000000000000000000000000000000000000..e16d03e2731ef98e55825eb3b39d13eefae0dffa GIT binary patch literal 6319 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 literal 0 HcmV?d00001 diff --git a/public/images/test.png b/public/images/test.png deleted file mode 100644 index 1cb3d1072e4d204df22b00aa3648151bc09a1be6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21928 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