From 3d317a8a4539e52ec8794c254d6a8a0ec1426fdd Mon Sep 17 00:00:00 2001 From: SkyfallWasTaken Date: Sat, 6 Jul 2024 12:56:31 +0100 Subject: [PATCH] Formatting --- .prettierrc.mjs | 16 +++ astro.config.mjs | 12 +-- bun.lockb | Bin 231265 -> 233460 bytes package.json | 17 ++-- src/components/BaseHead.astro | 26 +++-- src/components/Footer.astro | 10 +- src/components/FormattedDate.astro | 16 +-- src/components/Header.astro | 34 ++++--- src/components/HeaderLink.astro | 10 +- src/components/socialIcons/GitHub.astro | 16 +-- src/components/socialIcons/Twitter.astro | 16 +-- src/components/ui/Button.astro | 14 ++- src/content/blog/first-post.md | 8 +- src/content/blog/markdown-style-guide.md | 8 +- src/content/blog/second-post.md | 8 +- src/content/blog/third-post.md | 8 +- src/content/blog/using-mdx.mdx | 12 +-- src/content/config.ts | 22 ++-- src/layouts/BlogPost.astro | 124 ++++++++++++----------- src/pages/about.astro | 114 +++++++++++---------- src/pages/blog/[...slug].astro | 18 ++-- src/pages/blog/index.astro | 73 ++++++------- src/pages/index.astro | 38 +++---- src/pages/rss.xml.js | 26 ++--- tailwind.config.mjs | 20 ++-- tsconfig.json | 2 +- 26 files changed, 367 insertions(+), 301 deletions(-) create mode 100644 .prettierrc.mjs diff --git a/.prettierrc.mjs b/.prettierrc.mjs new file mode 100644 index 0000000..6f307c4 --- /dev/null +++ b/.prettierrc.mjs @@ -0,0 +1,16 @@ +// .prettierrc.mjs +/** @type {import("prettier").Config} */ +export default { + trailingComma: "all", + singleQuote: false, + + plugins: ["prettier-plugin-astro"], + overrides: [ + { + files: "*.astro", + options: { + parser: "astro", + }, + }, + ], +}; diff --git a/astro.config.mjs b/astro.config.mjs index b6ed592..cc90b0d 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -1,11 +1,11 @@ -import { defineConfig } from 'astro/config'; -import mdx from '@astrojs/mdx'; -import sitemap from '@astrojs/sitemap'; +import { defineConfig } from "astro/config"; +import mdx from "@astrojs/mdx"; +import sitemap from "@astrojs/sitemap"; import tailwind from "@astrojs/tailwind"; // https://astro.build/config export default defineConfig({ - site: 'https://example.com', - integrations: [mdx(), sitemap(), tailwind()] -}); \ No newline at end of file + site: "https://example.com", + integrations: [mdx(), sitemap(), tailwind()], +}); diff --git a/bun.lockb b/bun.lockb index da66377fda727d8b7b0702ee5e151c780a50a84c..8edd3fc4acb3278052a25da2a6456bd73f46660c 100755 GIT binary patch delta 44757 zcmeFad3;UR9yWf?mP3wt3PH@o92sO15;0Fj5MmY?2$4A?F(fh15*y1rk2Td)^AJj@ zPO4M~Rc)1`y;XIK7Qg4&Yi-GO>Am;!{@(Ymo{#4|>-((lnuop4KKsOtc_n{aT{6e5 z!Ongq&))jnUHGpV*68R0J$QWNtgQY%2Wvg`+M2$k=jx=$`GqWewao2XJ@dSeW*G9V zsKt`C0Kt;r?-jdSEtYbyXTWCs1aL9%2_&otZj9XMACa6Kl^kKQY==(&g!tqXXqI3H zi=_nYj?kGtE<7$iCemVQ1lyhoAw7I_Eb_FhfKVFtJTNoNQk)c(93ML-%5u1{#Zn#m zTVQ6i4otrh;mPr1<1CinipYZcsQ84K=yc}W8g_a3C8_*|gV}(A;7kT$lA8>VjUQ%t zXqOrHL<9>Mi#OIhP}v%s;gU5hDLf)7*~A~`i8DLgsKvOo{lDrP2@mBpuw zh>Bxr{gfREW^=QVl&OtAL9K$&d93c}n7EjP@Z{u~u-Tjj;0oXx%HH85YpFqGEh;K~ zIc#HG!N@-|YdWS4Gw2Uy|9Lt~t_PdVJq?>P>mZl~--SWmUP)H)4=~gHr+mDs$cp@H zKBFvIMNl)=sJDyExRc_sBVr;(pv5uCQE5@&FQK#FcUF}JCxoYrXfi4)Jq_K%284rI z(OcCl7L=9sAsBVb+JI?F{g8g6Q1wjah_1=%P*YYXIW@XTZ2WLbvRg!aYAt@>) zB_=A#2l4E8OopU*q)8qTo|FKd=ql%L44CB#UJ$Y>t;~UJDfNCI>bS%$ac#OovD~V$x-WHkJL0g*Y}Dd%;!M zoc~>$>P2m?nO)$Q;+bH*^~lv9*u&|_K9ZF4uj2X+bLe+ zE&XqS*{(6sF|kqT$b|5u1oZv9YSJpp8@lY^3s1KME@)JK<;9)Q; zl!kO{=LV%mMvaM$$B;%wC8ma>onEL&S;VJe9mYgOS}^XZ!!cc40%V1w(o&-0BC$sf z3y*=j#d4{+Ob~`n<;3g?W=k=H;A^qCwv;_m8BF~+m=&lQD0{F77*ita7ciH4EmVM0 zX=RXX;7l+ZR2DjWc4aHXqx`Ilu`$?3aLovo6}ScFkbDGYOB*RYppEQe4={VA0+=f! zqOB~Tn_?d@)1|bN1wL;rr%)x8j}6RaJ??FLD{g8Br6SU2VdzbdunP| zOQtc2jw)d}xF#Ipz!kxvVD`kS?lR*EV8(|lyEB-6UWzM#IoUcPU2$;Zp0dD56wDUi zKrPsFm3zq{NbZIH=PbSpfwT7-m@O^@X2!Xp7d+TpXw*|)3Dh?+ri9#Za4zf5pW+M$8sx}2|iObO&$?5D#l{5j2|ew zz9yDsS;S|=M?%H8!)8m3-L*-==(B_5q&x^_MFtPni`rd_?inH*-fOVl++HoyAwpK~ zHnuia=K`3`+5={PF9dVbN&usPtRCPRU{9r&0&~EB3YVMThhVm1m*QM7(=$N?3 zCaDP)k5s*AG1p9wR5`v0xXML@r$m8cM#rRB{v0FqyU4~^vP}|Gqf(#=@fPT3L2Puz;s&vc3<%Y{!6cQtz!_ELJ`9 zx@wKtx{=9EjFV`1(s1JfZ~^hm{)F<|2WGKdCd!4`63kLYvGwuMmRrh>$9iQmqGQ8( zS-0RQ5y1uw&XU6z0!DmhRyzdPo#v^+U)fE;tgb8A4vvqDN{JaAWf_fLjA#-aw-gm& z0kgoRz>zW0(H6XLbqS9}eY?10M~?F9?U)9@hq9qvpLf5HtaIcbLYyT z`3}s6m@^}6o~$@NDKx>b4CfA($*y?a$?^kKgx9~3@*|CfN8#|;WXm1stjH;FF>vt( z(%uE;X0j5@9>@i=<@a>iKzuL?j}4EEx(=H?bwNk}8{u=fPL4^58XcZsNe;(c!Yg!zoD-LZ zN`Gw0M#DT;%6xF9jY}PE6mIBFnX6=h35tt?SqT$S&KwQ7(%`V0LBSO;W$E z_%fIkcn8cLIw*YfU zBVuDxW4QkB?~pax`<86s5-?jdakuQM2r%uwV0Ljl;v0a!+a>2r{9f6$zk=D5hoG}U zbN9&tZ-6=5`yw4%zHYyq#5%YX%FmjK0J}CA4%`Qtf;j}U4p=M=!7i}bL#q$U7C!}- zhCLh1g3O99JR~a^HF|VZ3R)a-SPn%uFncNu{>&%wh^)W>a5olM3yF8q&jmB1EU?ic)g!y$#|E@JvDdTgv_kHyazl4SjQ%{V?3r5`HENe!?KW`K zg!R8ZY1E_ljBN+kdaV3vuzSxvjSkH%+WkV-duy)w>^sh`i{Y1z zoZ7%@VWzTW!gAMJ)(NohLZ}CH)Y#S6_8eAQwgfHqZxm$D#+nR7Y+>eTJ)s|J6l8s_ zKSoRdI+*!681W}e0M)&s!vL4mb@%|gb_QsgVtcg*M zEgM#6c9Zpjp6(fBZKxl@`zHM{-hbEqy@ISw^mMNv`*X_@j zVHpE&Plm-_vg=lqc@$QASaJYLW0kNK@a*d62!oEOPE%j&Hr?Mh$o`Yk9F3W>8<(0F z9d7?8EDnvFfi0Y+C5I*rRx89|wz&J+zJS%onD_43V%Y(XoRjuAWjW}?@U3#F&2$RV@}z#L1=N^TJ~FN5GPO3Cnf_ zR%@e?PZ8qSpd&G7y{pM4$dQcKAGZwBwCZ~Ez(8xLo*o!vJ5rsKXF|OIyRC-I(8_9A z`{@2bLH6m;+>jYGPhb0fWnm9MRlkGP3vm`byMb?+(3+~*7K;T7++x@7*RH3#*KxEj zMGPkz2EDFdX&Amtq+X>=H(P~TsJDL1Eucg$6jb98kt%wLNe_^gk;)sjd64~QY0W0 zZiFr(Br9CKiN(^BIcpP}=!e?{+V?=(Kn{C=H{knv=6k8$8fY|2XaE$ zFTi2~Og32drWQ*ZSeRHCpJA|C!@}6X+5oHBi@3Y6x*2htJpS&OB%D09WQ5%H37!G= z^$5wrt%1Jw%dk*wRE!JW>LEuID+kr|g%yH03sk}sj}o! zaK?h`VPqEk2397l7DhT2bQ=~cFV}Djw2F$45_S?jkWEnPpBJU zAC3?=6vtiV{B!po=;0TmeO+~tX415orlF)S%jXp<_PvTwx)#$4SeDC z6c$HEc4$x#_8}vVBfbX~yWW^7HV0&l6^N5dZ-hEQFKX0bCoHDH#Rc8a9eajsI6HGP zEOwDGOKdDi)}cQ_8~{xZ?%?ML;|&-kjJ>)W)()qVoSrLSp~V~&2!j*DaI{^8)t%dttsXiVdj(eM!txPM%VW-E!$C87_hZ19I=_asF1xfIx|1X6j=Fj-@|&5fxS7lqEZG?DsLx<=y2zcU zD9hG%epKgYi4dBeyPhLI+X zoqi4&I^*zbFWt{f&fZLd#b(HH{1}$3P9EaQ_b=E{DX{Xp<~>-^FVb}xAm=%nvBu94 z2D6k4q69{cJ!7nDt`T3~lH@rB@SZx3JX@lZWuWT35P1TWJQMh4i%Bh=3b zT{g61qgpsb;&fw3lMxzZguX#2#t3za;?07 zv1XHr(v*BE(4{530{$wSt9%FQ!N@EQB6L>w{DM9AV&k zz)c@x|1B(B*Rf}FUer#O$&8DV7LlxHj0v=_hbU(PKXhD&<%tCHBV8FRMwSE1-&Y%% zqGyZ^w4Z_K1JU?+Y5(Je#bwzdRnAtq2r^)?(%2q4_&LDvF+QK(Mu=q?7hQYhF)}-u zqz9}(#L1J*JXp*?#+_B3^2AnTtn|c*8U?q5)mEm%*={B*A6W7*av2u4+``6rtW=u3 za>!3VA+YEvOPCIerDGm7_O+dX<)*is(!w!aUg+g9ayG2|DxQa>Iv@RADML05*}>`p zi*a(7Sq_U;G%W3UhJJWLpuPIIf;(soEV{`3bO$UJR7l5XZu?zWvZmP>%9`WNO@giO z2dmkOtmlr`Gcp71A3JO_e z;$$bRQgKEHY2QuLGiCPrqEQzuWV-%jW}x=PbiMhkKwEO2Q$7$dX^AtQTRiMeKqHxO!T#I8lCHAD7$2(i^h%WSUm&{z6|F#+~ygxF%V@eNs1x!m?METbsRKS$5V3DidA=!bIx zZR>N)N+;(sb2h2T0#o|{p}~gMNarTbswN^7Y*aNb+Sjfvl;<7eBZzGXEaXuyKobk~ zCkxQ?3-#uDpw@Vio}mZYlNZTW$`5`!U~z)U&HX!AT+H~e)x_6UaWPIKM!^dZ>TiVZ zAtd{2kNRQb#k_Q1E_)o~1uG6#kkOKC z;cGtyt0yeEIIFLat;D<^=jQ;!O@HbZpv_&OA6^=$om!zkSsG~n1G+DgAUoV=?7mXZ zSQcnsv{Lqnae23$hvjSBgmGOZKhntjvthMCQp3ys4lLEDsMiOp3!K|DuQht}6@m8n zH3gQG?Gsr2jZYa{*W##XOs)p&F#bjZ@-XR_!t&Q!dIi`%L1>`XEO);Sy&t&8CQIZJfp(e=;sK7RX~Tu;4TNO{?fv>_zV_T ziM+bD-}>SzfR;~#)lEM(xP=1(xDAB)7VxGl1sk82uYDn`Zb*!CDXul&DobY7Wt%x) zuyfdRVM$M3Vz0xJ{nv84*#_*<+Jf!+;SGWIa}YU!fU$KEoV z9=yrd{utI^oQ+^jlJ?N4!U@x zuWc@@D81#D0J~+M96;Wd^R>5y)d^_~FZ(K3oUGFN85S=>@~)8kew=V$J)m#q!s=^O3S(yf9#$8bGkT=yQEAEAEQB=>aX9(m==2M${QmJe zCL1Gr>oBYkBNz0yz0GksM{p-#yq_Zs*^!(LpB>kqycK9KeL^0BjnrDt6MDw(=9$GU z#y43OE4TzeE(!2ekSoBh189INz*j+bfZY%%1T+Eo`Y*WF3rA+$6ktYP05kFdEc)m@ z7458+pJ5Gpr(#V8{P~7gL8cehwZ*C*+fzN0IbstwUS!6$QXH(fHJGngu?>0$BUUog zV?G#N&>2h{qiDRyEbk3~dN<>F2N}S-Ay^#2eGE%79Wg141Yt@iGb3zB#x3!1r59v& zO(ekdQHrC%eC2ayzEBv!Sb!PFN%@t`4C4WEg7PCXU6QiN%r6aKMX>%2|M6hH$ka1c z`TXA3c#)ZLmf~zMUt}hj0x*6mz!#bN3>tX7idnH)MyzD|&jpxI<~$Warho&F@p=_A z;Q|#;X2uJZ{ogRt3xMS;k?dw!iU41);vnc(0j{f`0gJw4zntd37}mA@75$mnue9(Y z(|$k$FEZ`lXy8Sr{g8%!?A?k+xBrtCUS!7puJ{p{uY$}bKLN;p0`z|h@I@{HI8ao~ zpbc;2!b&f|nMOnr74a%Ai-eUB&jPD}*@xAXT?34NmYRH1%=kJ=ud8%2XJaEU^J${u z-K=Oo6L=`W6U-Nx>#(`9$xPTn*<>#KU}cjTY^}JB(#Z_ARW_MhS4S{=s(Yr2=>8YX z3id=iU3w|*4Q57RV8#znJQ&QDMuPFr5`{Nbd^iooOgBpDnWGV4TpZq*Q6iYT{RE1N znSoi+f^3IA1AcU!sr<>zXO6N9GV__Ibj6wfA~0?~-b#R1fZ0XsRf2*{X@kDrAOn>C zQUxl)Ual(iAK5s5{4WXq+l>E9zsy(FkX^h28E~vutBeXV$8f!h-vp-17Ufrv>9<|Q z?*ud7UCQ1q?M%xa6|q*jhxz$oY&mGD)}1UFRtUom%@A60&Ll>e)k`Q6p9-Wa&268xkR6l88q zzpD5LV9vsSD!*4T^ZOm~ba|}&$VFinLSn`{D7Iy)Kw&U_9l`i#DW>caU=C3kii#O5 zk2hxIr1XMJy@HCbsN%`Yr;4&oc4B~=bWLz6ushhM&plDmm>K@C@XykMZ~uW=Y)j== zkePcM=xkm)#T^uPQvPJdcTqN2?t~PWaaR>Vreil{lNsL~%z^3+=Cx&jiZ95N1}mM+ z{urigGV_U0c0?hR&w`>0nOH{J@NN#lY+NT{=RL3DS_ADw@r8-g*(dMw@v=OZSwbRlULo%;6CyH zxBmBS6XX5~k1qes?Gg?F{kT#6ecQyitzvv+R9*6_+a>HW>g=+=Z=3vm+l2E$-ag@s z`1`iW-?vRTAO0WSHW_SuP%U`7gcYF8y9)ouw@vm|y1c?Q^XF#mUEkduQ`WOrv+sYs z_u0Z{{>ddLx5-&|W8c@8N@v?I%=@(O^7w-S&2@E)N9s0@~heP58h5Xcd$UlDKGi~72a+e zTy?U`iIe5}iu6k-r;f=y`YiXOjbmrbyw+yS-ppSHkI71z_|==<12!zyZ{9h0zO=2^ z>xV(_Yx zu-S>}#TO=@`E{VyMz@~$y#6~$J>Gus?XLX?;!j(DxcB+W9wQrm&o8L0`tGOY_5FWz zv5wWPfA+Pe>HYAYuJ6WshHih_7eDh3$2)#CjQ0t8nP+{i6ZIIpXX<&+`ilBiYYDyX z^DfqGJ@I*8>m>a=-X|}rY3*yBvM3$zQx{#t`!vzO3YspmNi)Rfq?y7)1I-dMNwdWb z(j4Jm2sBsZg2W@6wS;(B$lAp^Uj#cq*isn6Mh6JF;y#72A`n7t5OlHD2Eox0f~_!w zMIxjygo70JQxL*h1i}bAgs37AmWtgJoQpzma)hv4ggZhwN8t>Gm77l&}0!c7WW zg+~bpOG-glR06^_af3p~(h%B}gs?;8mW1$#!b1wXL~tnxTgpJ#SPH^!ai2n1SqPz} zA?y`vOG9uh2fxJ}_Eh4aG08N!mv5EeN@xFBv&=vW0pyGjr~5V@5gJfiTB!bc*wGK4KI z5H?nZa8cZ+5LOjJXcY*T#M&wl9IHXFxj?uqLR=smq_CgDXTn+)!iee+qN+mpTz6fRTvPSnKm z5Ho5+m|7FUO>vQeUmXbEwIJLQ*|i|trf`$OkHVuige7$$EUFFRuDC&=qbr1Vbs+pC za_c~NMByQYe~93^5Vq8Vu(2+L`{F)@u=)@}T_HRWYh58YHh^HO2jQUzsR!X8h5ZzM z7uNa^Ml^&FRUg7*v73T(BM43nAp9Z18$dWm;S7bRqD(^wX^kPIHiYn8K1VY_L z)-IaWDv}ym`-rPlE>kIF6}1{enc)UyYGWuitN4V9UsEXFO^{6yk=+E@+@^4of?asH zL0IArVUZhzV&Vpcjvf%&HHA<@jA;B83dar1Sb*V3E?1x{S+z+s~3b3-Vma^AXE~&DLDH;aB2pjiU@Cp4a`LxB2^V- zyg}7O45_-vBh?Un~G_<`z)Y*KykIjMp0@CP*% zGf9oa4N_y_-yGCLmXbWgeUhi>)B@xs){>fu$0TnN(h}q&wvv2> zH4x+{`jPy_Zc=k$4*~^7;hzBB{M-&<4~&WRp6I&qi)M+l)Jq$7lb6!uf-E3BRHHi9!J zsuP5MVmAfnt`M9$Ll_{!J3}}};S7aAq72iey#XN=^|THVc@*k*gHX3Cgm97A6~a{t zmnlSunr}du(H+9nHy}ibixm8NK=AGcVYtZd2H`e^n-pS%M|TKILLe;a4q=qIL7`($ z2<>`67%g&pKzKyqA%%Dm90FlWFKbD$Da6{@nkep52jfcI zg!F=NkivcnV}-Rhgb{rpMD>P{E_PFJ?hC;w6v8+W9tzK4?^9(5VA#LUkFzzT&6Ht)C_|#qd$bHVGyQ@ixm6@K=AGdVY0O1jZhZN?E;DHdf42H0AAcS0TpF-FW2%&=@ z=wj_42#!M`*akybBtiy5I7neX1tF|MAdCoy5H$qCQn8zY^DqcbLm?~|;X@&uqi}}8 zN>L^pLRtib)Nlx^MIMFvkr3(*gRoX44uf!&!et8UMa>8ZGom0&jexLGT%_O^4Z%AS z!e)^j3E?({n-sPRk0=OBhC^5s1!0@GL80Ra2<@UF>=3!p5FSx@NMV-<9u8qk41|rt zA?z0SDTIxL5IO?FUa@ur1jkVjY%vh_i;x%y2Py2Qa6ni`LKqPXA!;OqLt-}t=g|GW1>tfgtRyasj(1Fh&&4Q;~~@?4Ixh?j)riR!et7lMa?(}GZG+7 zje~GTT%_Qa2*EoZ!n-0n9>Q%3Hz}MK9tjYZBtck|0O5kTL7`(Zgm#G#J`lNy5FSx@ zNZ}(9oCIM@3fD^#*2_h4pF&tFJVKMQ zO5rkv??laX2s6e(n3@jZrnpGKZ#)F=3<$SGb_Rso6mC-ZQFx4luw(*+MdKjc6*nk! zoCu-acnCj<-0=_|QFutPfUsp2gpD&Glo9tSgw2K! zIuk-Uv34c|$2kyevmiK$kXaB8QrJ(SqOi_}Fk&u*sM!!IiQN>O=Rt6q1EGotp9A3> zg)9^4urb%Ak-9z^B`QMaG64FQFA_o8MzRq&WBJ}T%_Q) z0D^Z8gnA-72f}R%Hz_m_9=Q;f=nxj=LTDszQ0TZ2Lc0YJnuy#55FSx@NTI0+)*)*L)o`r1Fx2yOdrYW&zhiv>dGLsEAvMQa2 zth(*OlYwmJCE1>0_yJXAbYtD)2cDg_UW;XCyIPBu<`dU=oeU5+-L)V*EAs5Qd{K2) zclG%V0AHrfG}SpEcvVt9eDa}&()idnnroq1OKDY<#z&w=(-|)prSUnE5Ndo@rK%G7 ztllz!uWCwTMK&5r{xjvq6S7LHq5SxmoS!PVrqcLmR12lmQW_sHs-v{p(D-DX@u*yV zh}2yn;-B&8(-c+f`YLfL=pP`=7Bx^BpLT1i{2D5aPwbnIr8ZI;A5Oc8FdNiZX;^xh zmRm6RYNEvQ2;Wwko6?-1eWA3bO5<}`c}jCv8Xr0|A8_|jnlm(afGVF314)j@f!jbTnCs0uqT5M zN3AYkejC^d8vYqiv1RUH2rvHdfR6Qmp$M}p+bFF*!lMAb+A6I9!e6Nhwo@7(gX2TG ztbBWD_-APZu*J22j>@kw!u+ZcmCCeqQX;lb<9TwB@nZ*8#tq=Z>8{`|$`5UNCsym>Ks_j?ECprfs}Jpy40? z`iRB6tJ+KX@j1P*h8OPlLt}^d0(=CSmFlbf{1D!aFe?zIH2&;yd@$ZvSU)8;M>ri| z#{HERfN+M=1}Nv(zSfkIkkhd?z{S}VUEvOR0G@ys&A*~24)7s-KLS1mT#!#yAQ?yj#sFi1G$0+w z0LB61fwn+9pd?TlC<~MaoPY{|Gk|BiGmR(0hoGQvfKQKy0)2qKKtF)%i;I`*u@>w) zKs}&7&U1@JowE|g6tpb{%nOng z_0xbtz*Xpb{uugqHr-UfaI?f`dzd%#bC0Js})d*Tkk?PmZm5Euju28IAbfk1$} z1h*V)s>bDI24>)FfX{Yk0ONr10DsGn4NT(G*1QPv@oirB!hvo;51=)G;V^#N+!5Rf zmOR?NiMJeh(x-Jz-0JO0r->1i2#3l84C0PdI0kS2U21<>MiEOB@ghL;-xLz7^wv&VV<{ z@B{d(*j>DS?M7e^uou_|><8WkdZI$SO!0zU6etGp;Kg$m4|(-~`T#HD{JFwH@FHL_ zAb=$RA6mNv%tC$xfs)W#0P|3hxxm{T!Yl;-0R92++Lr(%0&zejz{mba0>KEs0R$qW z$!ynz zpp(D$hz6Gj??oXCq4xmV0zB@10IeRvwGq#w=_Y`OyPk}M;NwFN57NmJ|B8Jh%1S|R`%qKpN&8^&q%7Xe%aJTTE-2C(&P?LmMCgva1- zfg8YefW7-3uo`$5$UK0zO~6KAJ+KB?1*`+;L|zN5DG;W%LD{CyUfBDA?ZBG=E3p}% z?-s>onEEyVX)+B5CVUIn1u)@GU;3MEefC<_CR{^&067UId5m*hF6}p1(W#ChV z&%jJ;6bxqiOpe!AfLSQVu3$zS1{TgltRxFGD`v)h1C8;l6f4fwu@bbu16VLM+U%tt z0Os?E1+xnQ)4BV8QHAyLxg_=SkMFDSHLXrKEl5MW?=;jqK}!kSxLj@`2ULl zo2@CBpkVlS#IYL*n-#aaz~2H-0JDq#C=h0MKL!2-(A`EabB=IGnMWpPCQmv%%koTX z1uVdG5WA4AXN6v_~gc!)C&#~dkMpl`NDy%^6`)uG;kDp3z+QmMlC#W6`+5v4vcqgp`&-=!)n#b#Y2(yOW5q=NM2|#<33ipH_0t^6p1FSVKf3*=G z3g)r8FF-vE=m+!%csQgs2p9|u0U`jL(K3y{bHej?955P)1x5iQfZ>37?WGUT>hVA# zkN_kBF(`a2m|Zsk7!QmCCMr7M@BorZvnfM&BFEpdx71+9$-K4HgFJNej|`B6BE`jK7nu%I1hXb z906FvkHGH&9|C4YKR}q3*bJDJejnirz&YS3z%*xo6Torc81N2o8aM@<1oAlktUaC1 z0`CE=09(!$u=T763ua*^v*u>S&E8<;>1#vW6>w3o9T)>pV;QW#Rp2v#0{4NRfuDdoK&H7TvoB)85`SQ0UyRQj{CUj zM;|ugAHd7|z4FgAGJ0KsFDg|agMt-ftGFjW1wRCS1Gs;iJ<9FZs3`blosGE0@h|A` zPh{``B31$HO4jmEXt%&00)HUPYxiUDBj9)7i3-22P&R@?_#9xE;Bd17`%u170d^D5 zY6V-e3-)e+Hv)NtVr2>;%nZ!J_CaFSz;miJ`5 z;oJz|Y%d9$*9zXR!Me4S0hb221C|2wBM`$qfbPI0*xZ_Vucs=&??NgA-T?FT0@veT zHK~h09iRrl`#rn~#G66td$;EdI|IBa#G6CRgc>ug0#M@@XN>3fV%34UD4;gD7Elu~ z(@{6`mieInT?;s{AUZQMI=TZ50p1E>f(8I@k?>ZD>BsM|ngVVB;|Wi|17IG_0J8$L z3pS=!CIq&G5zPVKB4e%DP1OAW7VHa{tu4q*$6IOirymRAFg@yv0A8JWR~WCNEe3e{ z3`+G2tl{ZXBRM7`Dn7b#4UZb(;;j&ke@Vq64uoh2yv=X1&Hq-+(K^`6&CAVGUM!sO zLDT#X$+$7e*8~yYQ>)}X0~WT@tkre18aJ96H4I6;-MrnrNJ5kCa3}_cSxF<04eI>kSva74 z)*wmb!oiv)w$X1M{8-a|+iKq_F?GyQ`1#0;R*36#*bawsaOnQ{^!}p`!T6F0HtB;84qrFjOU13@3`jKN& z)1M8ficCG-JlH{Ri4W*^SlnW&-$a$Za5w)``JyXtd@-fScV5z+tsN^S(?LU1aplVj z9eVHilbrB>8V+7`NEdheYL#5f|6bl9%(M3gh2J~_2XEQTGQ~xWFwNQ9p@i{$N!IMh zg}aY_asIlIg*!VR|HZuVKjxiiy!?xRQ0LBw;jmzs2a3^QsHHJFUU;tQav19J?-_Zb zByKE=MazC@+qa@`Kllw)BeZJTkv3bNmfWOSCwjXfW1MWniGIj7Nj#w6E8B+N!g){( z=#Tv5fNEMXk<(vuu44X&>dT!D+^IbE=qOazT~6pUak@Y9%@)7+N4^WnplRr{J0TI{ zdd#jr(eU$d^T#1p3>kotk1T84IM3=i^UBU@VV#S@LCvv5p%2g+*$=}3XNoN4Z~l+) zmCBZl?OnUnr|`!RaLQE_e;`9^4dFCU^YS+T&-*uvUwQVt&E;nBgBSgRP#;d(sigGsaP&6++uoJe_4sf9r}b+yA~g!Kk&d$oq?` zgHbp0e;>XV*+2AJi<52Pz;+|)X*`389^WoT(eIB+GNX%OZ+_hAx79Z>)zGPK&2Z)s ztLaxy>{tPkO~!N1KT%ZHK~ZxEEH4oNs?y0t4pEPZu}8n!y>~l`^p!>S7V$$cyS^0b zhiGqDcZ&N=bx0H&ic}v~!<7zgOuxVX>X$)B zYRwGg5UJTCT{4?ld}jJun!n-A`U zrbgpGR~~LL|9?ruc*@;7*)1YIHa^K>{*RNI6LAkkqBU;5mJbk9nqxn5+%$W0pVj#>*J_Dx)@jZzci@3aWsP6xmsn)^djYn5w@HLKz2icgtXVp-EV1$J5g+l;5ulY5C@Z811p^K@wk56+#A8{>9ftzNhY zJaGNt1n6E{Y!BD6v_Z9n+b}I!OROyx4}(3cws4NXUF)T_MOU!A0#y);BDAX7rrN^& zO_aZ{w)ijt<)1+AT;FN4Q;wCp_hc?|=QRWy--X&ji`2Sm*K3O&ky@6E`QK3&8#6rf z^7Utp;OQf;T#svud+@*vySPLvUl>~jyM^O zs%@or-MkRRjfDt0n$D|le{$a1Ojc=k=NQdjal!VrU5Q~P0hTF#JR~eU!?qy^5cGNy$jO^{=_Xc;#4708R8$*<$r0LA?%nsE zFRuLC#z22~a%03Cz1md7j>2$BPiL`elr}>9%tP$liXOUwiNnR2=f-M(}>r56+9dt`(i;ERW#!t&V$3Jw?ub)T5M_C>@typBHw7mpD21^*Nx+%#_OWMM}|3 zd_3jVId5l4Y2LzpjOHx9j>CR1*;_n`)4IAW!Dh=2oDw>J#KR&DPN{AvP|PiFF+RRP zwr26BzQkL6ACJkZvS)R^*@ZFh<0}Vm`=uU^pANhef}GVwbEvP#N`OZSJb2A;zPqPn z_k`{P;K9Qp%AVvaK1|3jb8#YSZ05hgPrQ$2Xovkok3_J{%~|`zPaHoC+w?;{*lh7} zqSj2i)Lax!LM7Gcn|&r?leBJ{OMp01&(XU3cSOQ0B< z`mb#@CezFyu@kz>${=}ky7}~0-v@P0aapLIHFGd0kJ(!$uWThck3os1t^CDXV=x3} z*FS0{O3q^k1uq^8suV1WXMh_8i*Lq(UmlT`!D7-_jQ2;ua#8djWv%1sIcX?r#Une$ z`&O{{m^qoHnp63CYf&u?wW-iXbe)BGk2WGU4ebkPBNyP$LEh)nZ2QCW+b72?zsG#q ziW-?n(XFlQ5uXmfum9|Ebsl+D*%56;)&%5ja!NaKGOIvc%sQDpC+pW4~9c1l_EdRiB{q)i4`7tl`lnBhwD*qRa!EzWpuE3zEaS$cPVNhP~ zZRynnYOlx`kIc+Sv$1VEiTB2%H14 zvD4GeoR0G|+IdO4L zlTZBSpd=m_Fj?w#5j`dr$hlKjF=Zm^Xx25ftGLJbxURx|GT1C(YFF{i4A{%Nig`Q1 zs>HvT8fF`gb`?k2Hgg(Y=_-DqZMMPe!l5(Kg=R4?MZWC(!q1#P7?GuNxT$jL@ER6|`l!;?oa*E`c(4%8@IEZ;M{yZD-(W*KH3Cv+E$ zF-R_}kdgnlcZXNMU#<=A?v#3ep7AlHQ#}M~| z2dB|n&Fh?~{PET3e2;`s(TX0q@W7EYYu%YgwU;HeZkq35u9$zB=l^MB{}*RD%rDJK z&0Kab4ZC!H-6}UHthrWSO8jD?zAj#Ei!O7+N3W0dzknT7bBn3 z@Zh2;S~z+~_aFZ}ncrX65yQ_MO=oP$Td|>~$d7ptCR}D?R>|4p%-PgqHb&aqj9=DI z^%M8#|B86ytoI5X`86qG97bP`G`mJkVNq+Y*388nUp7`jU0XIDduIL9BcGtIY6Y09 z%Umm4;mKCbTe~Op>4c9$;i(Q4|M|>nUPR@|!BZPQP_&+hBf-Hzarws^B;MA_ zZQ6gX>;9Jh<*g@&ir?mIHMFmXiV8XSJmMBEmgJzj1H#4oIhgW&!sQU|e}3=RqLtsP z>tMx)TU^C)_cnZSF2*<)4!Eb1RXF97$k-1bX!#Di5W`Qid+Rz3a=$&bTz<@l;i4PU z{sa%)gUFga|LKYYwaeVe_b4^Y_+~rn(cq;Mo2_{7d47!NFtGw@U3$Qy2GaW0+u`T= z$H(pSJrahAkD2>Ic(7)@zdo^c`fu5l^F8(;hM(DkiiAWb%{U*KA9G=tsI~xUZ^MH# zx74>6JsSUc;m>>zhX}b#%t%^Z@7jz`CGul3Vni&`y3D~>FJ+N7=1_|*%?gkHfuCAE zaeD~gY{iH*%>6Cpk#{q9OSy_2e$V$frDA-#zW?^x1^Y7cV?K=$KQrwucyNzgw{_yk zpB?LdlJD_E#msQnK4M6j=4tscB}R%CI%-y9q@17Uiu4feZ;w8e@6l|eNPve=N9A$K z@^c5*AGKEb9s^a(my@I0do2DUFFz(>q&UvBQi^h1-(!ZzTZo&32gR45DnUuIe|qm) zeX()rZ*F6)sS}mFQDmMNT`DHa&ov=+-d*rUbaE9q`pb)={1Bc0=>Q*yw=cq?T$(JN zEW)}9NfB;~v1rxe6+;(mmE~>w3LG+m&?UVSOjk*v&O%pwqU^wjQa$DLqd+oGIC4P^Dhq|0r zL<~2<#7);MW9n5Jkss42U93XdDn9Ti1&_GX{k#6Y)s?4zZfUrEVBDMI{a)j?oWoKa z7AvNU8cWf}0pmpTrMOMlTZ~?co4dxX*x^1cC(3G^eJdyD%V|G5A}cjwT@X_mg$yfk ze&EqI?RaBU#oU@G0+(SZ;xk1O*u^zVcE^=&?Kj_@e}mrwsQtZZmN>Z#jeX6nW-mO6 zgH3`P>hYd2r?qF7a*!7LBezHYEKzbf(zZkHymdLIuV>Y{mKeAklLnh{t0UOEPc27B;IArtjSRJ7Q^lj@sDAmWqVWoh=Ig&v zs5(^)g+~?Fsj`x`FaBsZ`mGP%GAe1@u906Hm^anDeI;5U zrpq-}d_lY3Wu{#1kbhp>p<-H|b*$gZ@!kFTF{h`CiA-Br-Mp<(?uV}RXLQU%@#;o> z1irWAP8nQ&TTJC$ea0b1O`_Bp;(erb$$>{Lc>K^KqtF|nOAi=njoaI@f-bMm993_& z3Z1C#VY4a5UGLZ57r#AAe2hl>Jf0;l`0rJC;#9QM{mc1`8X`GPRmxsO7Y`5zJ%jU z{X+z;)x69$;SZwBU5gxF_f?9w#cV>6T=CUfbVl`DadZ>dKUb9I7Z0Ji^2&VF-}>$+ zQJ+7~Z~UoRqU|~@t>`v*ur6j!sxy2JLg%NE4&TPMYnXT7P=3nScc}U@!{t8?ymmHM zj9-uXT}3Ip8d;)`zw=X0;#VjIH*MJyKjn(I;Gq>?Al_S#-DswGx*p%cm_NXdU-D6@ zi8HV#a~tsFjoy_D~?wiTc^@5mb5uwFMWfgDf>Uooo43T`7aiT znpIU^SD7a66U09@;mg_3WuoY2^wM_Gax=cV4PPd&3=>4+X2j+$5OX%aavV;>k>l|3 zGI0_fRlbDH>(&HMx9X?L6{>|E#3=A?zI+w}j~0~JqP?N*SS|)`!4kbRROD>IWC>j% z-rRzn2=*iDo-0M;tvG9|oA^GjzlqOhp^Bo!@9!P1e6q&Vi$;mQ{K}~4D)A@205HEH zGjHO%%)(~NI<{I9d%n`6*oR2LZzhq#yjSbAN=(FeYd$Mm$=myrD-D1Dy?R4%ficc7 zm_x6>y^k-w-hUG(*dSynNA8DSf5-aHLuv)ym4HsPJ)pB`N zsQAI;gO@sgj*`^{x5;Ypj2U%VEvjut9hagt9D!4r-EPERKQcJqb0G34hnPcq4z^k_ zyVS`1nE2Hq7HM6kD~|G^q>w={nD z5I@6Hv#b*Hcptj23aaokOF@m?#h zWwzR)c;~y-xWB4q_gyPm!NVsB9(<@^^^s4je3Q^+cYc-UAcprQ7Tj8yvtvp1cKK;v zy7OR;fp~v6s%qW>P#;uXimj6y@1V!q9+dO_+C9I3mu~{7M*hXOA9L4&anVMR!0&xFZxkQXHgBP*RctQP z*WGFPcejFHq8ZeGbzRi9c) ze=$UuU0)+F&Ahd3ejl=RlW6=l%6R?F@OL(eq44mzyh*P1ZsTT5v#mc-;B(1!#PCp2 zH8p&0Ui|OJ@~6~+&0;5We|_42@0?fOtx^-q<`OK2>X~0|_ zDi8BR=!@O=U%u-wcTn}k)9a?d%U_8!ep6ICgid<>*G8}Z8Z`S&5sS3u&hzr_U$A;E z?%U)cWWdcnId?*9E<#towDtdQ6?bX;ro7(S*NlmKzGBiZ$dJ!p;HVbRM*MmhSDS2j z@JeATl9+R(<(v2>j2CTO<}7B1$}tp4M=*!gPOlmvPEs?sp4VTE?(Yz#kK%-3JVjYS z^gF8g;xFXp9>rmx#ZK|fQ5+t+?39<=@2`ct8}kz$n&RcisE6^ftAc273=h6I8PAZIlHPSGuC$-XLV6 zEVHy7T0gciB-xB^GVmjq85IVK9hE{`8F3kb{d117G2$UcouXT!OZqWDD#}360f~$( z+m8VWi?U3N(V>aPIKQ6L`xdY;f0cXBx#ymH&bc4w_v)4#+fsCQHwFPpsY{Vnm_Xs&u71g7bN-ql0D=(A zLCR_${mNr=!4U_J{o9XQZni~F;c$TRDk!gItg5Ivr@^d`|k2OT3zXcy7y;0djuAh!#m{Q=E;aAtyH5i*6BVQht<;a36{Rb~W?x>eK zFHFi8uv=m$+Kwi&|AJqY?M@SwpxZiK9-u)iPE*q?-JM?f_lJA0wg9Tho&Z5}rJ2rm z;-1{!LgOs@+ZH;Esg=eSS#rF6YAi>$u@Q+hBAJm!VY*T21;peO1L&jfo{?uqnD$Bo z?8uet%p-57f9cO#C?c|20a->**m70-sLOkfnbc{m6#?n@zsBq1t`u(JltkTj2SDNS zPp;-?VC5$dBz-0#;~XmpVx zdI%1o{wiC~$-SZ5(3i5vaq?7TTC-Z|9T1ogi0fK9-7CI|4FNul zrS`o=wi08$%k6ZuuILlhiJNAmnT)0x`;Bl3Ka1Q&`!a$;K6aT39D7P__MJ{wzRP9Y z<#6uFchkUZZ9?*t4);zcL_XUAS<6%LzxWEZi3SNSWfu9D5yuc6kI*KisOVBANt`K$ zL5XFo!bi4}2{q}Pez9O;p;PrwqojLc3H9e`4O;9esvZ|fboRQ4ZymiZ9@J3zn0T4S OtF&>g$rai+UwjIA?sugC delta 43629 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 BHGu#C diff --git a/package.json b/package.json index 57e5c59..140718f 100644 --- a/package.json +++ b/package.json @@ -7,18 +7,23 @@ "start": "astro dev", "build": "astro check && astro build", "preview": "astro preview", + "format": "prettier --write .", "astro": "astro" }, - "dependencies": { "tailwind-merge": "^2.3.0" }, + "dependencies": { + "tailwind-merge": "^2.3.0" + }, "devDependencies": { - "tailwindcss": "^3.4.4", - "typescript": "^5.5.3", - "@catppuccin/tailwindcss": "^0.1.6", "@astrojs/check": "^0.7.0", "@astrojs/mdx": "^3.1.2", "@astrojs/rss": "^4.0.7", "@astrojs/sitemap": "^3.1.6", "@astrojs/tailwind": "^5.1.0", - "astro": "^4.11.5" + "@catppuccin/tailwindcss": "^0.1.6", + "astro": "^4.11.5", + "prettier": "^3.3.2", + "prettier-plugin-astro": "^0.14.0", + "tailwindcss": "^3.4.4", + "typescript": "^5.5.3" } -} \ No newline at end of file +} diff --git a/src/components/BaseHead.astro b/src/components/BaseHead.astro index 3441240..8bd31bc 100644 --- a/src/components/BaseHead.astro +++ b/src/components/BaseHead.astro @@ -1,17 +1,17 @@ --- // Import the global.css file here so that it is included on // all pages through the use of the component. -import '../styles/global.css'; +import "../styles/global.css"; interface Props { - title: string; - description: string; - image?: string; + title: string; + description: string; + image?: string; } const canonicalURL = new URL(Astro.url.pathname, Astro.site); -const { title, description, image = '/blog-placeholder-1.jpg' } = Astro.props; +const { title, description, image = "/blog-placeholder-1.jpg" } = Astro.props; --- @@ -21,8 +21,20 @@ const { title, description, image = '/blog-placeholder-1.jpg' } = Astro.props; - - + + diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 2b7feab..1c1e5af 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -6,9 +6,9 @@ const today = new Date(); ---
- © {today.getFullYear()} Skyfall. All rights reserved. -
- - -
+ © {today.getFullYear()} Skyfall. All rights reserved. +
+ + +
diff --git a/src/components/FormattedDate.astro b/src/components/FormattedDate.astro index 1bcce73..8f59590 100644 --- a/src/components/FormattedDate.astro +++ b/src/components/FormattedDate.astro @@ -1,17 +1,17 @@ --- interface Props { - date: Date; + date: Date; } const { date } = Astro.props; --- diff --git a/src/components/Header.astro b/src/components/Header.astro index b616269..592a31d 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -1,21 +1,23 @@ --- -import HeaderLink from './HeaderLink.astro'; -import { SITE_TITLE } from '../consts'; -import Twitter from './socialIcons/Twitter.astro'; -import GitHub from './socialIcons/GitHub.astro'; +import HeaderLink from "./HeaderLink.astro"; +import { SITE_TITLE } from "../consts"; +import Twitter from "./socialIcons/Twitter.astro"; +import GitHub from "./socialIcons/GitHub.astro"; ---
- +
diff --git a/src/components/HeaderLink.astro b/src/components/HeaderLink.astro index ee43b36..cd2e436 100644 --- a/src/components/HeaderLink.astro +++ b/src/components/HeaderLink.astro @@ -1,15 +1,15 @@ --- -import type { HTMLAttributes } from 'astro/types'; +import type { HTMLAttributes } from "astro/types"; -type Props = HTMLAttributes<'a'>; +type Props = HTMLAttributes<"a">; const { href, class: className, ...props } = Astro.props; const { pathname } = Astro.url; const subpath = pathname.match(/[^\/]+/g); -const isActive = href === pathname || href === '/' + subpath?.[0]; +const isActive = href === pathname || href === "/" + subpath?.[0]; --- - - \ No newline at end of file + + diff --git a/src/components/socialIcons/GitHub.astro b/src/components/socialIcons/GitHub.astro index 158024e..1d66e5e 100644 --- a/src/components/socialIcons/GitHub.astro +++ b/src/components/socialIcons/GitHub.astro @@ -1,9 +1,9 @@ - Go to Skyfall's GitHub profile - - \ No newline at end of file + Go to Skyfall's GitHub profile + + diff --git a/src/components/socialIcons/Twitter.astro b/src/components/socialIcons/Twitter.astro index 717429a..c0432db 100644 --- a/src/components/socialIcons/Twitter.astro +++ b/src/components/socialIcons/Twitter.astro @@ -1,9 +1,9 @@ - Follow me on Twitter - - \ No newline at end of file + Follow me on Twitter + + diff --git a/src/components/ui/Button.astro b/src/components/ui/Button.astro index 3e5d81a..5827b31 100644 --- a/src/components/ui/Button.astro +++ b/src/components/ui/Button.astro @@ -1,8 +1,14 @@ --- -import {twMerge} from "tailwind-merge"; +import { twMerge } from "tailwind-merge"; const { class: className, ...rest } = Astro.props; --- - \ No newline at end of file + diff --git a/src/content/blog/first-post.md b/src/content/blog/first-post.md index 3066715..7848b7f 100644 --- a/src/content/blog/first-post.md +++ b/src/content/blog/first-post.md @@ -1,8 +1,8 @@ --- -title: 'First post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 08 2022' -heroImage: '/blog-placeholder-3.jpg' +title: "First post" +description: "Lorem ipsum dolor sit amet" +pubDate: "Jul 08 2022" +heroImage: "/blog-placeholder-3.jpg" --- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. diff --git a/src/content/blog/markdown-style-guide.md b/src/content/blog/markdown-style-guide.md index cf02c41..7645494 100644 --- a/src/content/blog/markdown-style-guide.md +++ b/src/content/blog/markdown-style-guide.md @@ -1,8 +1,8 @@ --- -title: 'Markdown Style Guide' -description: 'Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.' -pubDate: 'Jul 01 2022' -heroImage: '/blog-placeholder-1.jpg' +title: "Markdown Style Guide" +description: "Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro." +pubDate: "Jul 01 2022" +heroImage: "/blog-placeholder-1.jpg" --- Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro. diff --git a/src/content/blog/second-post.md b/src/content/blog/second-post.md index f47e093..a907080 100644 --- a/src/content/blog/second-post.md +++ b/src/content/blog/second-post.md @@ -1,8 +1,8 @@ --- -title: 'Second post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 15 2022' -heroImage: '/blog-placeholder-4.jpg' +title: "Second post" +description: "Lorem ipsum dolor sit amet" +pubDate: "Jul 15 2022" +heroImage: "/blog-placeholder-4.jpg" --- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. diff --git a/src/content/blog/third-post.md b/src/content/blog/third-post.md index af82f0e..21326aa 100644 --- a/src/content/blog/third-post.md +++ b/src/content/blog/third-post.md @@ -1,8 +1,8 @@ --- -title: 'Third post' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 22 2022' -heroImage: '/blog-placeholder-2.jpg' +title: "Third post" +description: "Lorem ipsum dolor sit amet" +pubDate: "Jul 22 2022" +heroImage: "/blog-placeholder-2.jpg" --- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet. diff --git a/src/content/blog/using-mdx.mdx b/src/content/blog/using-mdx.mdx index d976693..122fcfb 100644 --- a/src/content/blog/using-mdx.mdx +++ b/src/content/blog/using-mdx.mdx @@ -1,8 +1,8 @@ --- -title: 'Using MDX' -description: 'Lorem ipsum dolor sit amet' -pubDate: 'Jul 02 2022' -heroImage: '/blog-placeholder-5.jpg' +title: "Using MDX" +description: "Lorem ipsum dolor sit amet" +pubDate: "Jul 02 2022" +heroImage: "/blog-placeholder-5.jpg" --- This theme comes with the [@astrojs/mdx](https://docs.astro.build/en/guides/integrations-guide/mdx/) integration installed and configured in your `astro.config.mjs` config file. If you prefer not to use MDX, you can disable support by removing the integration from your config file. @@ -18,10 +18,10 @@ If you have existing content authored in MDX, this integration will hopefully ma Here is how you import and use a UI component inside of MDX. When you open this page in the browser, you should see the clickable button below. -import HeaderLink from '../../components/HeaderLink.astro'; +import HeaderLink from "../../components/HeaderLink.astro"; - Embedded component in MDX + Embedded component in MDX ## More Links diff --git a/src/content/config.ts b/src/content/config.ts index 667a31c..8460ae4 100644 --- a/src/content/config.ts +++ b/src/content/config.ts @@ -1,16 +1,16 @@ -import { defineCollection, z } from 'astro:content'; +import { defineCollection, z } from "astro:content"; const blog = defineCollection({ - type: 'content', - // Type-check frontmatter using a schema - schema: z.object({ - title: z.string(), - description: z.string(), - // Transform string to Date object - pubDate: z.coerce.date(), - updatedDate: z.coerce.date().optional(), - heroImage: z.string().optional(), - }), + type: "content", + // Type-check frontmatter using a schema + schema: z.object({ + title: z.string(), + description: z.string(), + // Transform string to Date object + pubDate: z.coerce.date(), + updatedDate: z.coerce.date().optional(), + heroImage: z.string().optional(), + }), }); export const collections = { blog }; diff --git a/src/layouts/BlogPost.astro b/src/layouts/BlogPost.astro index e635b8a..4d140d8 100644 --- a/src/layouts/BlogPost.astro +++ b/src/layouts/BlogPost.astro @@ -1,66 +1,76 @@ --- -import type { CollectionEntry } from 'astro:content'; -import BaseHead from '../components/BaseHead.astro'; -import Header from '../components/Header.astro'; -import Footer from '../components/Footer.astro'; -import FormattedDate from '../components/FormattedDate.astro'; +import type { CollectionEntry } from "astro:content"; +import BaseHead from "../components/BaseHead.astro"; +import Header from "../components/Header.astro"; +import Footer from "../components/Footer.astro"; +import FormattedDate from "../components/FormattedDate.astro"; -type Props = CollectionEntry<'blog'>['data']; +type Props = CollectionEntry<"blog">["data"]; const { title, description, pubDate, updatedDate, heroImage } = Astro.props; --- - - - - + + + + - -
-
-
-
- {heroImage && } -
-
-
-
- - { - updatedDate && ( -
- Last updated on -
- ) - } -
-

{title}

-
-
- -
-
-
-