diff --git a/Gemfile b/Gemfile index 8ab1a2c..e13cffd 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,3 @@ source "https://rubygems.org" -gem "jekyll-theme-doctored", "~> 0.3.12" +gem "jekyll-theme-doctored", "~> 0.3.15" diff --git a/_config.yml b/_config.yml index 62db9e0..849eab3 100644 --- a/_config.yml +++ b/_config.yml @@ -5,6 +5,9 @@ url: "https://matmanna.dev" encoding: utf-8 theme: jekyll-theme-doctored color: stone +analytics: true +include: + - _headers kramdown: gfm_quirks: [paragraph_end] diff --git a/_headers b/_headers new file mode 100644 index 0000000..9ffadc1 --- /dev/null +++ b/_headers @@ -0,0 +1,38 @@ +/* + X-Content-Type-Options: nosniff + +/assets/images/* + Cache-Control: public, max-age=31536000, immutable + +/assets/icons/* + Cache-Control: public, max-age=31536000, immutable + +/assets/fonts/* + Cache-Control: public, max-age=31536000, immutable + +/assets/css/* + Cache-Control: public, max-age=604800 + +/assets/js/* + Cache-Control: public, max-age=604800 + +/*.webp + Cache-Control: public, max-age=31536000, immutable + +/*.avif + Cache-Control: public, max-age=31536000, immutable + +/*.gif + Cache-Control: public, max-age=31536000, immutable + +/*.png + Cache-Control: public, max-age=31536000, immutable + +/*.jpg + Cache-Control: public, max-age=31536000, immutable + +/*.jpeg + Cache-Control: public, max-age=31536000, immutable + +/*.svg + Cache-Control: public, max-age=31536000, immutable diff --git a/_includes/analytics.html b/_includes/analytics.html new file mode 100644 index 0000000..39a84dd --- /dev/null +++ b/_includes/analytics.html @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/_includes/post-card.html b/_includes/post-card.html new file mode 100644 index 0000000..8f521c0 --- /dev/null +++ b/_includes/post-card.html @@ -0,0 +1,155 @@ +{%- comment -%} +Make this include generic: accepts `include.entry` (or falls back to `post`, `project`, or `item`). +`kind` is inferred from `include.kind` or `entry.collection` when available. Icon and metadata +adjust based on kind so the same template can render posts, projects, pages, etc. +{%- endcomment -%} + +{%- assign entry = include.entry | default: post | default: project | default: item -%} +{%- assign kind_raw = include.kind | default: entry.collection | default: entry.type | default: 'post' -%} +{%- assign kind = kind_raw | downcase -%} +{%- assign card_image = entry.card_image | default: entry.image -%} + +{%- assign icon_class = 'fa-solid fa-file-lines' -%} +{%- if kind == 'post' or kind == 'posts' -%} +{%- assign icon_class = 'fa-solid fa-feather-pointed' -%} +{%- elsif kind == 'project' or kind == 'projects' -%} +{%- assign icon_class = 'fa-solid fa-shapes' -%} +{%- elsif kind == 'page' or kind == 'pages' -%} +{%- assign icon_class = 'fa-solid fa-file' -%} +{%- endif -%} + +
+ {{ entry.date | date: "%m-%d-%Y" }} +
+ {%- elsif (kind == 'project' or kind == 'projects') and (entry.start_date or entry.end_date or + entry.activity_percent) -%} +{{ entry.description }}
+ + {%- if entry.tags and entry.tags.size > 0 -%} +U?x_ck#;$Ov+jdouHF54r{fBq8`gZnoeAqHu=8yBAo2hMqjV=+> z9V>|Q# N)>*8_km|myX5pT&&3DLue`L6 zs H`%G;IivEUfT>9TnNso 7iQk>!Spk7Q^BnuMIO6Fj&fbs-Zseo|6EYFV}o<(1fHP3 z{cZaHZ{9ADKPMfNdu?u_+^)c_jn0ei{5~XH_ThB*ml-DWzFnGj?|-HW?}61 Et|LF$N#m_XeS9 kcds_Yl)C&us53L~ z*ALO^nfB7neeTcpbgFQA+HBr`{8RP6{%P+Pp1HnWOTBp066HzX_3gt?{5w7W?O(s* z%r7_pJifp_kAKP8Cwz7CnfV`g8r_TgxAQOa)$7gwr~K#tUHtt0-1?S(Uw_a282Mvb z;oIz=?;q)3```5U?vICmw*SfJt8=MOe {{qz6NbqnlEe>>j&xuJgk|E>R;Z;0Q{ zpI?9Q-}j&PA2)xK|5nTUTl?SVJIp`Rzx98w+f{$(!;L@Uf8uY+H`u?Zzf=F|fB&BY zzncHc|L_0R|7G9W{Yn2T|8M@wf1v+M{QLXg?T=NL|5pF|@c;jJ2Y);Ga(|zrdFicj z_?nZC3e`Su5Pc XYCUOM=Ark&dD#B_qu{_nWb*$nd}JlBbVFyKB`W5 zKEqq~Ov9Xs=L@ztxqZ8uEEB9K9K6X?V^OA0BYQx*&=X~ca~{_+kNI3K55Bc+!Rlu9 zX$RQVlm*J(*-c#jI_UMAxieG^ %-|r|AgL#%!}H}o)Q&(;zZA@o>|xI%>vH* zZ}fiVa=>z0qfcLhq+0YJ8~vG4JSHc))8#KW>`?w$!JzFBeEw$B%&x_Zj=Qc$X>D1TBqN-jmCthGyIo+u6{vw!`zZ;r6v9mV6_~v=bLw-;#-3 z+6S&F-j(|=`0V_J1E2o7GtY^vGc jm>j9ljHrx3kcDy4__=lX?IkAg7xO>i>2bH zEkAT?p@(|;^uBwm(WF^vQUK3n-R|qMoLjS>n?G~XE8n7H*mmid`HjF& z0l%NGPVtyK>+q6$)2qK8Qormkv3g6aiN3SXIY&-+*EdWv#HwY)tPb dl zs7vxx%D=|-@we+hffK_~{pZcWCwJGKStwy{tnNRh>4g34WAiH9-S^pPEIOR{$4_5h z*j8Tn=(dPgan17cy`L3EFZTBP%Q``k !cK^y*VzS)t$OcoN^NH(QykEWAcJ$(Tk^Jk= zI_H@b@Amc3kk0t9MMPZukHDmP&MQ)#(&aj2C*IwE{Ya@*CwpC=r`y?iCy(52+A*iJ zbefsd17U`)D5vc3GhNDw`n)Zdjx9KPI?2ChqWH~ATfY9~QZ?B7Q?qrpfZ8QS!3%R< zo;%x9o8dNt5fZQS85f`LegD3ue5SU-lMnZPHZGjp-r2@>=Xs}e)}Ew*+|Pe1^V`@~ zF&tbGKK)d2_xWS3(S^5IgPM1D-QKY?qj_UhbsaRKU6l8z9yCrc>EwOP-!W;vie`h0 z`K%4e3;M6U?R8$iDy(cpqQttxr TaZ>7m34%e6sr?FTf4_(n@IHEgt)f*?S0^r@VpG`lbE41x?00wInXJdsyno7` zsymVs-u}Pyk(<44^OTY~$ H)jVd5BjmKng2i6{nFg0Ikwer? i;s2(f>jG0p9GTu}jXp+qA74R%9d`+IHxXo{&jHP{qpo zM)z$jI+tCU9MJjG%&N-7Dny@CYpT!bUPbPClYMJ0-#_-@I1AhVIHNZQ`yb`*`s^N`!*Y!0pPvL*HGC|Pec+$npX12`kFMnba_& B{dJWA z-}RugM{>=yD<|ZxQdOMX`C4sn^!wSYW{naSw{xQ(-s0^xJ9+x)$1lE~H@RM&-! ;drnF3 zl9dB~9Ji>LwSJA+WSu*^`nPNEVn~^~A;?82xLnmju*;~7?a0vsZ)IhiR2Z%tx|hiF zyr51aTWab*8`tTPi)%j=+;LK2h+z2lYcW@awMKMZPh<97Uj3^+5$CJ)zKiJSg)e#C zt5k3H?|b_*$Nw#T!u7Xjy_&61cfIfa;hnP=NT@$QE1+_VW20Pjp8V$**LRgGd^pJB zIpvV88@t a{qW9>fUfhCZ>aDX{FQj{ZSNYTZrnui>U*(nL zALp&B&+ERNS#q|2g3*<2B^N)wf92%0i)r< >g>f t-VO`Br~|Jf zeP=wf`JZT3@Z5E!OLFP2){O;|w Z$G_7{bg%TF{l* gx<@y%?WPez(R9`Z<%J{D` $d8XwtrS8xD`9AzO9%T8XeD~u&x;2xwwLd9) zdT`g&&HLTHI)+a7Fzl~*^Z(18HnYYbxev4%&)W1X_p5*TN>QZQ;QZ^Q`3--{lDf7n zQ IkXX(wJjep~T?dd~Ly_cv@7S3NkxE9^HbQ_P!Z%f#Q#;kPvVeqcxO*XYWv zb~WpGFZG6h-MXjYXi7!b+*qFHHyt+X)Y@~T{Mf0}81CDayDBx|~e;o9I20w}}pUFSlt<^J$gHSaYYOW6werb&1ZRy5$*ZaTy!B|4Pd~ zbW}E4exTTAQ`f_G*LOj4g5N)s{(r&u9J7(}rvsOc{a?Fz>xa`PrG$mP+38knT`?=r z_;lqm 3M3zXrQMQ=!a86h2hl7(VlAR bmQb@YhT2^FHr8 zyt=maQSo1nozm;`S1gR3ud2P?aHajrmml>HK9Rj|aQnZ3-K*lVyghGTwNH> bMtlwDZylfT44LqG3ye#p$dEpypF&S&*8`Y>Jb`R#;9 zfen>2m9uteI@ 6>ej>z|uVj?_zBRTJDc|DAbUlto+Y8pcXF%jf&r zwESEf<<4`w>wA7R`oQWst~cy2*5#@FN)3Inw!QLBsN@T22e*12p%CM)y}3_zy$wkW zvbwYBLu&i~`WI^>fABx8G+u3Cko-qWwyc-+!(T1)gZCo7v^R%&w#f%~@6kJ;w?aGP zwQTZ|KT5(L@e&g*ZGFBdSu1zP=~nT(Yu)oxZ}QEXzVHsi{wI%i?SHi{g`tXr|Fm=S zvnRQq^}ILmOntLdrG0~=ESrYWoXvYLZ`|JOKK01&l+`QeeVw}}`>^2h-G5tWpH%4D z@!V>~hU8OsQr_`Q4Nu^DeZ=s>=WiWy>SxMW^uFx6;ka2?P-Klmh@+h8MyHfzVRx$J z6Mih0KQrO^H3jvfUr$DhiR(OYQaA@P+L|NonOXr1MP)Rf Xe#iIQ#?+2C^v6I(hr+lf4IFOKF^4EX5;@&l@8qbELD4gxd2+ZB_{P9nb6Hk71 zZ{K(`?kJDRAKQ+5dJGH<4BYD{T$68Da^$kHYJt4nE#KzeV=XIUUe>nU)mDs|Vsk>~ z@`5)u0UY-`7V~9R`n{TcXXB>mQ->c#d_KvnA<({K&qw*Kc@w7`SiIwPy>!gMw#)Sz zcVA7KX)*cWeHFc+($mY%JH#9gEc%)B^kl7ub<=?Z>mEpW-4@7N%BPd~wQeteLqz{e z$;zXjd4u ?%mEfhUN2;3#{&NpLt$>dkL5B^7siSG^JeY?{;35Kgf`D z@N22~>4FdXnR_&oFI}lpT3z7vhUaA57yIuFOrc-bx(CEMT6l{kSbOg95ti(=%kho> z@3~D-Hh=N)u3yGy64p+$`yXSv(Dg{p)D2FLd9QX)X?`N}P9`WnYMzUyN0^P-y$3n# z*E2oL+{*W0n^k+hW?J(M+bypnBIfm6Ely;Kx_{aH0Mjhl;9l;w8*Ov{&nU>AkQP>1 zw=r|A&KsM>a;>7q3wM2 {Wza7*-5 z=Qw#zRhZ3CG>>yh`;^@=UC}y;b7VxBx^oQJTg_B<-n%9C{s+_a*n1_PU4F1lJh^>w z;km@z15sBtls=X8bo$t{ufKfS0lB_3{mzvWKT1R`W=&PNId6-A=VOuTx!ZSdP+1V# z|M!M#=2eDfmO$l*^ZG7MEKH9dd^n^1);Y}f Iw>8aBd8&cEv8_t>eBl^Ue zrFu&PpMK2P-TUcJm4t%aGa>!@RjZBn{k(H~mezz4MLxqvM>cNbycqDff9mmPolc+c z=myq0eCA!3rhj-(hvA`fpHGCc9lWw+sq8`t*7PIUDhuZ|I(|3Yoct&?G*JHf^~HsH zA&*}fS9u3<&U@^Wc;H7sYXc+u*PtKgB(Hy7{IhrYw7O?c?1Ww{QGA(_pPT*XSnGKM zaf>w%CbB-Yj_C^B^YG7)X lE&_$bF2T{wI45hCeHIpTh?_j)n0bl^`{2g*e3pWlVX|v z@PksqpG7mj+x*}Wbz2f#{?wms^4C=DO>38_?Dl>rc)Z1n-7fwMTVkC{N2P8F`>Noq zOH$&WIoS3e>PhTTPu;!#zLrPCC$G >mK`E@k1|mpXu7W#&Y{t ziItW@UavB49htpj`;}i(-+HyaEqUud^|R1LoA_DZn$n7@Y8z8$H|bBly!Xe{2-S1< z&KIdwoO}1gl-V_Q)+rD686KMQbA$bTr|sS^$oq1>-w99=$G|YBY;~9N-hFE-9xhT$ zF}Il6mNY}!Z<53*r=ZWq@>V mz5rRxTJGl!|SMJUjDP>rs(#_JvIGujLA*Z zYxmsEA5UaAFkdzjNeI3d@-Xa|%WB2%GE(=I@3k0T{671#@ykb3=ZX4>H$P;QJ#i`i z-#67&uN$ql$<3e7TbLVp{QFYblXHzqrUu_@o7$iJeDQ=6>bJuFF4);R`#{>?*)#UK zJl$%2SYc87;{@{`rVqm(_HtJCn+Sv_aek^R@7+_HzUQ~d{!3;*t=jqQvP6yecAc1Z z$~It;-WI2Mp-Cko)@y(H#<^UNxl-Eo^4gPq#s>-~-c@;8%=2RNul|!K7e9D< j@+ zU-9PH9%cQLo<}WKl{hose^H*lNN3{_PNzDdC+D+|FtGeNveQ;uZ^_}?a#}kq%${{T zniAsQJ;D1P!!Fgy(}gE AfSHz(b8I*^j{@g|7W=0ElD_#ubmj? z9Q|)+?3u;OZx!^f?W+@7t|lH;A(>H`w4ik}Q)~8omhjsxNiJH8Z{#i8v1XM}U|jU| z>9y($N^2{Ru&6mL4CN1B@ip&yr}US6euw?LjQLjhO$im4a!RK@($06$n&j2p;@&xS zi_X3DE3bHQ Odrg<+mZ<#z{={&Y8g=t3HU4FhR+n7JYCd)W_yT?v#mj?ASq5GC l(#BT~^cn@`ZoW?nJYk@F=@{KMSqE zCH<4;&hNX&^m&8M6n5?pm+KDK+)R&psyW&6Osmj|@?+e;*Ug{%$|+KE?e5rnA*C%- z|1DH0`2TwCBlW2FYmX!xTi3R-qvmO3{CBUrCA+T*ugrO`XM9A(`rQxxs>2JDf6Pxh zz4=G;+?3W8VduAf(cypRu~;_g%EgH*8)llhX@#tC5#99XRCSV9?#BB0r3IcsV)Fxc z $ZxPDn5Q*Q8tYoRJKiQ7LfYFOf6xZKERsWrp)O- cxfgIRBwOyxJ8&bg7<{Kon9_TU%m3aj2QKHyy+_my2M^U48NZ(F9V zJElKm+;HWuw--zL2mAMb79ZT4d~eFxnID^%rEUJ8&9T(cJ8h$6ggnp0jm%G3cJTS6 z%P)}+@vyZh%R7GTXG-LyvrNl&dit+=c4qUnO}15H$EtrQn#XQArh29J-ubsZr}bo) zCH_je%E-B84MXdXh2|? oT?5q2q1wBgTI}4gVYUZ 48?xB6sd0UAc$+>hXEA-uH92cX%6{*H@Z9@xKt*%x_qI&Ee!+MM;;ek1C(UZ-ghL zOP-87^@+3PF`JO`_e*PdeD1&3`FA4b;ioUxZsy)!H$!e$>-n=wikj9QZryxeG%j}A z1k 8Mx~E$JG%c}6VLM5zzVf}3Ao_~Wk`pK>8-)pr-c)GbGwYZtHl?EP!` zl9|gGn7$o3J!i4SpM94f-ENz8{Lzh{r*3$)bwAI(9CLENN5D7kJFWfvOBoU$=hy4} z()r1qzagrR$9twL7sr$tn{H0I8$OXy>i3n!Gafm&+UObUOEwy`3f;;7tsg%7?wq#D zQ}==na$1JmUi&|Nq1M%_wr$5OWo=6uE~jKnFy0ujHqOBE9P7FT$1k5*SbwayPVe#D zw$t3_cZep;HLJce@j|X?LHnFlq9JBE^R72#Mk`; kC;HinY6@SZjt3;g>Eht{?3M~=Tkjn zTqjf<61XH6$Xvl7;beRKlIHhGzx8jezn>^GGh314=>*Rm0SDyIT=@F_Y1+KkK`b9d zD`Ky%f3wpd@Xp>}(v=AlCf5Gn-d7RX5^*YWdD)I0|I%6ds<$4${Zg#S&ge18pn2!a zFgu;+45{2z|Mq+LEdRazy1IDpR<${*?WfD%7;lvFeRZ}~?7&@#|DAbUOC#0iWqc}J z= %s}MST`j!2HtdDapg|EQW*cQ3H%54UlEa>oq1Nh!uIf%85h3hzw@5| zUNO^kT4{If%yNcC)kD{>&SuZ~cVUz8p6@Zd>z&VrO^S=Tn6kAdDZ8S4f!H<<7Y+S6 z5}w*CwtZ?{e}E~-^hEOZd(jdOwoEH#@ zzFnRYIb-JaGsj*}zWhsQ;iTQE&TI57Ger7@9^Tu P~InVy4t;*1- zm}3;1>-2p4!@oT)|Nc~lgx*@#F==_W`L;7IN4L!2()7E^U38@BwDhOhVVl3Vtea_( zU_JB4mQ7-UOZ?0J`MgTcmTu$PaVOyA (*H zu_=1%bm0Zc>LtQoK1^!QvAPhrg>9ejBH_?IamCYCzF08N+30KKzRXEdJF@SusJz5= z=rx wv@2jnSSIH!iH2L1isE=1y z8g=}=Gc(sl{ztyF^$*wSd{3>cu68Y&v*) Y^Yq^a(Kdy zlBZ2?)I{3fTyzf#^=9renzDpv!m%elRvb~KQ!-XK9eX(c%=hbyUrIIqTXcW3_q4 zD@|PN<|*`T&j@L1ahdj`xWLBC;b*>R>7FNV!u8pVUNY2Gy!MWrpxsucJ=5Wkmiy(v z|3#19wtmzO+_+`=>#5Z-w>&u?yIx*$Qe1si`19ABdA?dNdY{(&^vn}E=C6_k`}vuo zZ)bkZNO-(5R#L-ePrw49bhjzC*0amFn|AnK`t<$Dnf^-?Rz7~P&oLoBsCZM9lXTwx zwvRV|9*BQ;EA^Mvl~?B-H$G)dls2#Xv~yM1g$w#xNo<-A;~T!PeK@n~*e&h5W`{yE z51+g4HrYh(EpuI#@Rj2!)%^t#f;tHw&uOky&=u*D;671Qa`sh9d7GZ+kC_>JcRRZm zRZd&xcx_Xh=JUQS%X9yJ$i1~r?;q>?!k@8@+Y@_koS18Sdui>TweMs2j8mgaKQk~0 zsoZ1^j1+&_GHV{&4oh|xqXl`AYnF-0{5R-PEMN8Z GNQlti68JgF!#WTn%M6Rbrv f6JI`2 zRG4IzE%Pp}XM+ZR<=pq1zJ@;8>$!8%tA+JG?<|%*l5+p1KdH0HZy)2wvLn-$eml(5 z>HVZtc!RHZ)cJQ4^j_Ou=U?^J==Pn8KdMiE2KG+AWXB`ev#dG(a*tuuo$w7m0;dF9 zuqHqHCd? HyTXgw*yj(cFSM`O9k^(Z zW?#bTy5QrF17ZYToDx3OV3hi0rH6gR^P_%SUBYkXx?lNF!E;(n)x>q?h3;7m4hx_6 zGy0uX)S0;P&MuQy9l>>?s$aJKm7JoIwD0F? E4%J(c3xCE z^Z3uCo_jxBSoU@@&$m9VyVm0JgI&q;Ruc~kxX)tp;*Gd*IpgxR>N`P|C$*HmsV`XB zH0`nI-=nK^>zNpoztwGB*P%c8yU<-J-~9z*vkL4Et@=Id&vLuWAJ32e^o#d?m;7ng z^9Mf|ZW?np@VygT$Y)+Or|`?m3D=4^l20~j9AFYTa;uu@+k)z~2{PP^ww=|Hb6|AS z-e$||_bGm+bbIM#gC&>Tv*Z6B_pI&7R`0QU9X=(Lca^u!)qQ>9#XO59^uJ(uqyDP- zW20|@V)~-8O?u5sZB$xMoqql?vi|aS?LyN=mROB_f$VOTd*&aE+V#wN(wFqObN{PD zPOS`IpI)?n-6h6N(Toyr5>_a>9T#(-c}#H5UGr!`yR^o)6zn-;_LZu9^3X^$yAF z>dQhNcmy82I*qL;e0>Jnr3;O&^EIc-ov;mStTGDQp1Jn@8MZ6DGq=67U*YGbv_n3t z?d(y{{jO&0?RI;nZ=D`FH^2CQv+8_?pMO+?*KmL4Sr*E@=V7Fl()Z9wj} zPkm+?Ytwg?t@jQ7C|}dy<<_WCnQrp@ 4jrfzu2XnvW-_z@k z=x+&JAK(_-cb0e4U4~Uj+uri)bNpJer@piHlIX(~x0VO~?R?1MuxL%lk=k#H^PVKv zm1VwU5R+#WeQ_jQ|5{y;Zl0$6vpr?Y %Y@MhnijDmCY?G?i`zLP6FF3-qZuRnOOJ2|Ve8q0 BiQ9qkYh=0A>6O~rE}pp^G26^r6J~ZE zjM?twdnB#m?YX2o!7JT^CF2yCBsa$Bym%11;Ob_hqmqCBxZkwYyV1e_=yFl?iM@sk z<~LnjcZ#F??B+s!`||hQ$+6G&JY)K7{7`i6*3d)NALWIVZ`_ez64vS&`7d$TvUQuM zl`7e*_R2?}`evnHGmqbQcJ)!s^*o=sT39`n-(1afws+Ptqe`Pt@6JntUFVi4H5B#F zbJDdq+g0yjyytw=i<4#7qL@EPC~ul~UMv2*?+3>xY7F0u9xY(=+HzC;1@lqIn+%?F zRIC_Z@Ur;F`#B!$Zs6n=>W jAGPJFuvh4(TT+V0 zb_*FFS-&k-^7!d{+6oK#uAbW;Gx7ZYx;H%qGi>jjz14h2ndjd6*Wve$+1)CLRkrA5 z`uayd>(qzjw+Gq1KiP)7zU5W2`|yQJRU-8PuWDB8Yi9deu7B~z|0P>zxwgd4kE+vJ zB=+rt#ewEYnUAifz4G5Y{qNVGB4?(kP25%SbeH=sft{^?)7=Yq%(uIAeWA^bHoi+= zEV<=6j;2gY*>`>aVrJW b#b^-UD4Frq80M4#;2Eo71kp zVNpZkE{+KI*KL3LHzc*~IUh1-vslBsncNOp&gB!_cjSjjnyT*-OJ&jf?eOfc%TJMX zhKJUv&c==gFJ<4Kc1&owEAH#xerW%Du5E5vj!Tc0SpMu?waDS =@hR3Zvc`Ed?^sjSE*G*A)IZ5W(Zr#f{p*8!|Gj(hNXVfdW z-rjU2cafXj#C)eT&V(hwY(nW +2OU-N5&h6LR^FkODro4+>yZ67!VJ__i zxl=peEml6We_x~DsXAtXHHU _uEbMb_=$wBXRYOgXMouGC8Zn#7ZM zQ|8wF*Zi_CJ>G`jxPG1e?FaJ=jcnFj?xqWEg%yWyWH?`{ix8K-<^AN;o(E1*uRTnY zV((Pw3JWtl-Y~D^rURGIS%bItpSje#9Pkts=V0gPN_xITUT)uFZ!MKMiXQ_)7?!ET zU$EK3u;Z5x$5S4qi}?%==9ecQJ0LAxBfgB=u<>DbZuD`Z+$CAJ_i7xK4gXps&hysb z wf?s&wZ=L$6C13W{>x3(v)oW*Dyqo2-t|jaW zBa>!=v@T0fYTNseXCJ>O@vQBQ{YO^$Jbm%`mN!LEdh zw=^?i(zDK*8@|o7%TjAzHQRGdQ}7KP&aR0Ewfffa%>Bu49>R5pIX}a~Nl0y}km5du zRgd>b2+UA5(0wcHA0f 9%au4RUQcdy**Iw4&ty-wIUX~W(V%WEe(7u0>4u%=M? zgUq!CvonjjR-|&Z_nulXZL>>%DI53GJCfcnu4wZ7J;K#<^i#9mGzMuQn*+7)z6M`! zVPTYWx@o%4=c=aj3{jo;PuEA=xqGvi^C$I3%Vsnml)t3g5ihp>&x7R8MIB4#&*Kw+ z>b5l?cq^~Txrt`=tQoPIB41_}bk^6ch`KE!wNZGBN96~0$!8hI{KBGAh5m?(`s#b{ z|JO7xRZZ{NyB!6$G6Ixd9uT;9`ROBPt%rx1WFuWPmaTjGkYQ$@p_d)!T$ux+OG<8^ zy}`o$SB>*}{|1TKo=hR%4rK0O51X~Adtr=s*7~|_&PSgJpUth2n5ypE<=%0`e@W1< zlI{2B9=vP+UH@X+zDkoj9BfV>;+?E6@|b^&6pXQ-(^mX^wq*a|HP$U$-Q~r#5+{y& zPoDAK%I-wdEE^Hako)<*lD?6-OTI@;i7i^@JyU$Qzv3L_>m}Y*-3KynzGRTS_(kS| z#TM?RwLe?G9}DMnsFy3rvR(U9X7SAYIVK)Fceg*|*|D}VyK!;IR6oO1o7d-ZLmnC4 zHRRy({3O|UA@9%H9%$$$kvJMDonzKYYUD|j)rCzcA`+oDi`n @a^N^JMpNq@t}F}rv;ID>g;SA z#CWq>e)R`si3aK(-uJg!B)^0s{>R;) BCtL4$KQr}cp zG4QaMtZrMru)HJNnahBuT=e-~pCbkgy$?8d%rks4J&32E?vtN+#Z>XD=SziTs;ZwD z2wh6^&)GI #p cn}{-UtaMq~ct4yy-A4;Rm`<9q7-id#tCXK|)1qj_=5gy?x6 zI9LAFkU#t;x8eHboTHz8*cZj7wOVRV6FA{}{P5&o9SdLfC0i|iBJ09&%TYs&brzF+ z-X8PQlPyGU8?BstXv<&eX_IDG*jBP9Jn2biXY$fd=ZQFBGMi1) Sar^ite4C zS5{nlTiU5>O#){_;X;k G`d1yLi?`xoKaU(wprMFA30^@O)j i=aC@yk_JZ0+uMF~roZWNT1AzTS#yCBu{%HS$j;@vs_{bxN2% ze=7HYE6ikranZxpxL;!4%_|puUEyKDX{Dgq`>D@s?UqFqAr0TSmdivi_!yc#aN51v z^<05=WFb$f^!xy}32TBcTezDUWK@0oRDGVYLQTm2x}tt@MBKwyyi>&V1)no4 fbN121>Z4DC}y$>e1IGROFJHmfv zdicv)lRvpdN-_rndT)RGlCzt;%I(=N4Y^;Z eb2yziGu?)q9GOPP6!7Z%w0IEvi$lwE$^K|N-d+ D zwtWUqPWg{XhuTCQH?-Y2Gry|w?&<$e3jg28`f!d{bdrZ$P?i3HU?%5gohz$1uMK67 z+OoH4Ui9PJfB(Cly0xTTIisJ&ef`gp=r5^1;%hwkw!fJl(D?6t`=aPmYkHSGIq=g< z*EiI4jq!pT94YJbnGLJ6b)7^r|BL9zYiz6ky5!e{&yG)Sp4_XJ sprvF z{I;d=jn=Q8 VyqILyHsfYZ*})>Ei?b1pW>(IY+~8=p3UI-4i4!#7qU}7Sl8>OC8hSpT8Uqh zdiGzOr7|^cdqew*vX`yjUwKFzWi!$`d@qE#ztieRSAsxX;lH;E*OV0NmwL_La>m`w zXRpL@t80(WWknsW7PXC9xKZ3pCg*YGx$0FLt(_lkw3&Fg=)#E>N~b literal 0 HcmV?d00001 diff --git a/index.md b/index.md index ec03027..ee9ae75 100644 --- a/index.md +++ b/index.md @@ -5,7 +5,7 @@ description: My personal site's home page permalink: / --- - +@@ -45,7 +45,7 @@ Outside of computing, I’m also a guitarist, competition aficionado, and lingua
- +Recently, I've been shipping, (expand for stats!) but also:
![]()
![]()