From c349caf0f7b20190fedb1a93ec567f70a98ca90f Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 4 Feb 2018 11:20:23 -0500 Subject: [PATCH] Finish Jekyll scraper --- assets/images/docs-2.png | Bin 15956 -> 16287 bytes assets/images/docs-2@2x.png | Bin 38686 -> 39598 bytes assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 5 +++ assets/stylesheets/application-dark.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_jekyll.scss | 36 ++--------------- lib/docs/filters/jekyll/clean_html.rb | 38 ++++++------------ lib/docs/filters/jekyll/entries.rb | 3 +- lib/docs/scrapers/jekyll.rb | 22 +++++----- public/icons/docs/jekyll/16.png | Bin 357 -> 403 bytes public/icons/docs/jekyll/16@2x.png | Bin 809 -> 958 bytes public/icons/docs/jekyll/SOURCE | 2 +- 13 files changed, 37 insertions(+), 73 deletions(-) diff --git a/assets/images/docs-2.png b/assets/images/docs-2.png index cee86d69e5be1ed6b6864df58803e1306d805595..91de3f6babc807504e58e05cfc2247b414450ebc 100644 GIT binary patch delta 6532 zcmV-~8GGi`e4l@iBLY8Wu_e4Ef9C-e<(2mFcX!jar0i}KQ`Xql5{e3f3aF?s6sZGP zf+%3YMie#HXohLPRH}*;m103av0(v*jtVGZ0}(-^F@gvJ3Kr)1o;wbRAWAmIFW-Lm zch3L3@7(v^lXLK&=ef_lci!P}LLTXjnnBWUNc*m^`hdaQ(SyEBU1fWye_Y}Qw}R$C z-PVP0ck2?kw#5t1hc1TWKe&{OzcIDzunR)OG@P9g-g0s3@u(d;u6yuLHqI5~)(L}- zJ=`B3+7h!P`e}Sz z@w!Greh*FfF>1S7AHVJZe?%3d)4$@~k-Kg%nsA4#1LAsM`8y+?=6*Q*X*RC^6@8!y zdG8Mcyx(=|W1apT$L=;*KKQyt=zU_ov(C{^wW3QO5|a(vbB(Br`3CQ*X#RBiD%%%l zul`oMjr=UZ&>xNGhw`=Jn8@uv87HzlZH#Tk{+59EVnbgGee9Q{e;4*_D<;Ru7Jh}^ zhygV_`^M(5~cZ-;>G^Q@-o4S04kg{18^^QjD2JTn5S zOch6xBxh#`Pu+Bvf2O8;3C`S_#V@LyEy%kp2|Cu0p6q`wXv@Ba1%krzmADylA+t=F{*LE$uQLAcis)e_C!rJv9c;*nMUic!x@532uu|0rco&DXIod83CBNIHcMUlF+RrxA8n-W`59 z_d}h_S)XXzwYA4%ALwQ-sW)G)J8;X%oVMMLPErmC&CC6V{UVm?C|7rk=S>-=O1lDc zz7gND!H93sV9YnaY$UJ<8slrx@ArNj%hYu47+l{Af5!#tOSt{^V8R5q2jj=PUosv) zJAyp>t&U^87)=%L%o3*lbGC1~-Yi~`^||BgmO`mb;NiU?;f|gy|876N^*e+dw`z-S z7a7g>h}t3^dDfF6=%3%LH|XoLSJ+RKva_H6kzIW^?iBsQVX+yR^S%C$XTo_$%J!KU z;K1K1e|O}S1hDz%QBgsTzNQ>!&U?&T#GES=uy~S2a%J8UV`cGwW=S$EEhP%4wle@JYDWC4!Pj1ga2}T4s@z-H{ZLpKDS!&On$-D(vJh{-^N8U8aM_g^r zf0u1!-U8-Q1>Y(tAIv2RqT8sSP+%2w63oRJ($@?(>h#%{s7s$WNX*u)OAq_`H5^#B ztmc5XckRKYOP|Th>zT0a0ABYkSWufZZ(eP}?Af)uMvSc4ZDZ3I;O_3t`~v!!a6T}e z6P#$|9;DD=t?ZHwri{#1pvj@(=GLoyg*gD$sD*W_($&y7>>2x#F=bf1YfY zDNp*qlqdHx=g9)he57wQ^s}Uy9xRb!nz=aLjzm5SX{O467P2fN^*w3Js4|ykIa)~4 z*(^!s{LaA>Rf|%f(olJ*I<@jhoBCO;s&6OaKiBNLPeUspskhcjPKQZ;d>_rP4{PWI zB=pu=$h?F@VsTRr+W}4q_)sJif52IhADoj(p@{1PIWFJ8F@}M|sQsvYs1(%sow0E4 zhYhgP%BqR^1sKef%r)`|Y#Hk&UDm~XdN~t27_AvU&u)8WJu-V1X={6Kshc^eeP9@# z$&#~qnL$p%dVdGrFw%yfe~>x|2jd*D6w~mJA=89|1KENN@i=joJ8}kKe=4rQ_R}(F z??03N(?{vpPSewB`qp|v>z({4s4I+t+SAc+w;&p7Pwi0M*W!J3{x-lq%4wst9*{BZ z2H;A+C8^eoFI{fR6PuXvq_*Z<=`2&8q|_9npDAA&iRm~Gjk%GDS+ zVsGtR@qI@2YHQ!Cp(V`uOcxS0G+(+CvUllHD2|MH+R*Y)S>JeH+4!hg*@*WI%@36K z>S~o0`MJu>_3M&OXnOPz>gw;o{iX(JY<>W>)jvbd z$`z1lW(vEfe@|;=Ix)yA=>0KnfvHAwH^caa+a4KtZfhRn9s;9W#GpIfmndtbv#?jk zF_>1DsEnnTrTRDIavL?#c*Q7CtAxX8)Kc{wm1Fg+Z}uY9V2otpfsTSla*Tcf4!o^c zY+wPxJ1ukI`(VKliqFHOY#ukjk#~|96%83Dv*ip5e{d8u;hZpjs-9*xd&Dqs*4KWr zQ{oK+2M&OxZgz0@)ONUU-kC zVIi;df2c3NGF=>1l_BkN62xSi;sZ38!d#vWc7a*2GQI?+Z^rpP&TX} z&o<`)OO}mhRpgt5#*_EJe22>JV5(%4E$R#AIbW#Tk~^3+n~aUu)O;_Yx26xK-|PE& zYXebYZ>_r+4Sz%vmf^JouSNTMYbET{(3!EVf8UEQ$xQI_f^*?v(DdXHRODo9$w(*7jKFwloxPEN`$lUR@7&yD77Ewfx60g>BgK-gBN z$84_+$s?wV!t`eNt{slq@P)shiQ*kJ)MFHoG|cBe{DPS7W#aMb2X;u+4=o2Bd7q@) ze_}M*^&oUL&g-TJItdQpT(AKRS;A4Tm0_O(Owmo4dQ+qh+*w$de1dbsGHk!$W-{Uv zE3F~-7F&&LiV=Ck2k*ZJv1r62p=-d^Xe2o5YC^=ixo~jvT6q7xcffz88!VbKu9=J> zV;O`*KQvzirri6OhMha4W)G5zpA{tHfBtCBhwAqIW<2@gwtl5K{vVc~5Xs7p`avnG zIGG1%I@R_3K|WkOEPyM={h^%bg#Vt3ROt(UM3y*hmsL<6#AcR4Tx=YKC8UBwa1Kn{ zlnZVVSbSi_lPBgvRMa*&n0FqghMh)ZD)zOlzoH^gk*Ge*i}dNHEmA#352N1te?uBN za6p3?PdhWAxAyWx4Xt(Yy)^sm)zG#(tfB3T^FlVZ%}LhK-iby%xVM*f`>T?ZyuIO4 zTr4!A0V_}D!|^d=;5f?+ju;t15;3E_J>0!>TNMQx9yY-}G~!7v2NWg~AkNxasWK5R zy^Wmi|2amw(Z=(`HyL|IJ+)sce}fyx`v5w+9+J9!KM+R0>=0t8=LW3%syhRs26r$Z zSm|a5Fc`(o5d(@HIK6``IUmXFc`S^8p4h%5(3#U$X3hUX!sdC&9l7&yPH3tsMpOpm z5(D035F72GK5L!LFW<&gTcy|vQ5)uy=%$jb&Jfjg726E19t(lnIgzk_f0|{vt^ZgD@m|v-o+_;q^UkN|P ztLCs6>Gn8nDS*S7r@_o*e>|*Sw-IKBp9JaAQb;~?6KsNWK^Pnb#s;HcZ_<8Py!!%4 z$H^VG<6=>JQ45&on4wD4!uxg>sQcm=yy>O6`Uo13M7zjOhkUrVw^r!!KEnYGH*Ie( zt&BtDSszXPcEf$9H4LMo2uSj@+p@ z$8!&L_I*IoEk?raf1y+TnlT+OA`y~^6ewuWMw}xiwSSFK{{5tT1+h<$g{^e0FVX0~*A&8c9{!;;9cDyN9jcbdy{ftz#|e>TM=!Vf!+tLA!w0~aAC zuM#GS6tHr8CIm+9hQNbGU>%$fll{~7G0*WqeTniz1)zdaiKt#`C92y3)P25Gk6{je zuJ;!-UkXOPGpdx@OKU1I9h$5NQ*k3+i{qKDKXii;(s*}ot%1p_S3$+01JLlO8EzC7 zK<@Nuki}+0f0~gYq)jw|s~HMtdi)4(o-cviS+03)>k7IDoDF4Hk&N_zXf#>!D@QgkKR`M)B zQ-VFte+eB!vdJ7!RiJomD}u$bMZm_s>k~>!+_vVnMTQ}$wxx-oC@ZEbR_bSry6=z< zX8IdOJHg&hwM>%ml^z%ctM}tvkQfmo9q(29xBHhZRhHwN?*79EaJ#$=N|O@ca#A9c z;oR>h{M`7c1!`{HgtJl!6n?)Rig-Ryu;F_se^{{`Vy&%Pjpl?rF!Ts&)^+h)JlZAb zqyJ=!5ToF_XAv#ilzhg5gN=r(>0rJZ(ng+J!d1yXi+ZXsr<%@k9P`4Qdf7{xS zIB<+H>b0P;&iFg?hRB@xUywcF07v0yvh_xeDv`(-?9A(r>H1`_v+rXpR$jUoTo~`C zy})YRbteOzM>aY`TZ!2E+K=b5jBfAYEw_5ze(xlXTohNalKY|ClVx;6ii} z?uMk2D={pQDqa6dOni?HatzMCf6h5@8D@v)!@?Z}DuZp$xd!f7fH+|UjLNEjkkl*i zed0M)MC2YS1(&egpA5wcE#^6&qB2l(P#-c~`B42VL)Eu?Fe2($9PF*LH$g))_{gAF zzYb&n%9V{J7|lvTg5i8%09@P@3T4}(@c+9AIPdQVXIFSb@tW08xb#~%f8{nCPP)56 zK3>ndyF-kbStD!dj+XKBH_c{#B~wP`*tVx)T<5dV%Q0?yW;rU$2+dd4UVMzmvU|xs zFyDo2vytsKl47wc{#sxw&>+PLS)##tp*KFeL(GQ-i3jr=K_VbA7pZzxk&om5Iav?H zws0&`wwQ6Hfw&-D)gA%ge*hE3=~E_)6gMmaa=}8Lg{I4anPK^0sahLUz>F<~4<3yP!f*(Wr2>qDhAtM{0j--(?(f2p1~Zk(6p^4OyB zi^7L7Zvafer#fxLC86S9+=|Q2XS#!IuLZCLd7)%2(2>_nmRe+3?c!YTLFiO}Km!&8 zIQW<`zcFO_g{0s~e92ept+?B`1LDH`hM4-F7={bW!4{H?3YIwik=gUDI8{MH+VFWL zE1EJo!FQK#6NXUe)u^!#&9z0L3(&DR~r z`he_k;F8N8jCwc7Rvg|Zl7b_Q%=z9DWX^}__pUnCx-)MHE0Lm)xkzDw`@=t&OVYy8 zcoBFC#>X6^q`5rnGv>bxjDTZI@cbh4J7R?Etl1}+H$-Xaf0gexZwV{N$;}l2z<=F8 zAmz>Tx42#8+h&uF85tShV}2zUE?nM~eBco9_Jb9`B%CA;HU0r<|w!M{urIi1h4A0KZgVHPIaINYF zR8&?$85(Ezf1Y?yy-Dd8a{Kn}h508>!`b3f!%!&Qp{1jVPc z;^JbMKYzaJb5&Ip#K)_mpaIiE@YP_$G4-~dE+~S^f2-G^p`pp2p-{R5-z74MyvVR4 z*REY_zsDaf2GurF54m=&GLS^S;)93b)~2vlEIx)Z6w0euvvz%SoSzfy3G;@;09V-L z=M9AK*R2L`Z|@@;Hf#{%50@D9p!j${Z(mY%ivCzA{?|aLRb*r_6w2#}+7_JwC%*-_ z@B_esf8lU{*D#pH>I-ml6N!MgaDG^fKU|!_yoT!P>ZvKNj*#}%K)5wkZ?<(u z`7dJ2)~L(M+fpZH&? z+_g{h?9Aa}zrj#naV>(OP8GReO{1GeUR~oSD>eUU0 zr%Z&*z60U9s|TPV4H*ihC+t6T0+eZ1pv;;1q5+Sw;8YsjET6OHiVf>8>Hbax4J$IAfJq$eMf7*is5&!@I073s>wLH|{goo}fC0000r%ov2|^K~Mn|6`DoX z23&$D;DS+!qQo_trZ=Ehph0C7SzHiM+!vtPQGuwqfry~d7)3+@MO6BJx1J3mXp)(T zU(Pr6JLiAi>v~lu=iop0)~%|3&ErM18I7Dy(r-lPuCVri!JJWpKF(V1f4H|=<^|Wn zXG3H3S8ywO5nS5n2d5(!!r|{cs-<6AI(69vA!3?NOpkeRcFN)S&6_X#2#+?;5fwFx z!w=oxl^XdVX>;P^)Ree~Re1rAVq?G|0vnfBR(^MLpSyDRgs$ z-=LRbKwVw;H*hX^(8y>ycz7(=BqZ#7r$s}3!*k1JZ|o|x(H5}GjAZi>-oPfn(gwB2Do)_^Bx z#6q2=dVhxO#B}kof2-c|tQjdvhTIO{xU*@#sH{35=y>)w zg0jxjF$!OR&*C5VG~A0LA^%sJ@SjA#_7o1G_Rph6Uwqv#`zEdn{_vV1l;Q5j_qgm* z_}++YTn8N8ZA>S-$9!X7X&=>S7=7x-vxe(wJ{@1l;vUlhe_|+evF&=)V>7XB3eNf7 zG8fzAqrfc44#?G1Y`1i**tSoH`3PTO6#I|$QX=3J;}AnlnlvY3BrdOv9yJ52U|+Db zoJ}Gf*>=ONI8VT5Y~&+-U*=(iiY))n9#y!HPv08h=^-u-^p>hsUyDl)&ylIs-XTRf zNeMfCgc`g2fAnop<@0%G_b(4ok9=Z!VE_A{#%q49`MMS+FZD12NvF`|D*{*kG~DUJ z>%-0$y=`zl|2=)Dj`mdS1233M8qHH04%~ROuw%EQn>3$A78m`)c>#w#%Jm|~2__F^ z)2_%`XeP96G85V~nG3DYn~7|~M+eyq_`M&;vb3Bte;U{KVsL@_9B#ke8$aIb-nenz z=gh~=iY3o_>p0f4(Nz7~OmWsfX9eXL%@mZ|pE|sHF;qH)?b{I%=E!nwZDne= zjy6t++Sx{)qHD*@WB<5wJbm5Od=sN006xf9y1#4-p{1=9sb^9Dd)T7T!Bq=(2@xI{T zrrk@H)bIB9Z`iYV@e}#^JrTC;#_P`c^BXee&TUAWHLGFk@DcUf92}ZMy}kXJe}e%Q zytm9}tJ2N9!_@|yfF9Xk@`wU8nhd(=e>Cc3*EV~@!t9>r;|fQk@z8wYGof6*aj<*v zyKHslDoj&yg?m#m^-4XZe^qithS;xM-cU+nKVA&T_v@edy;pTH4HYS3^6RzihJ+x&+~e|+f} zjzF>1QXs!)DNy=Z3lyPNf%2Cc`Z@AEAC5#l)mob4L?WM!JdZV?jUt~&dr#VO>#XJZ zt~Rn9E=QI(uY2%BHK5d}Y*aC-QLAForhV4H_U%UMhr0cD>ga`L^wkUCb(!R+_S5}h zpN>IjT3@}dnCGxpDs3s`y1+4!e-O&WA~+!lhEobTl=B0j(Bn%u#4xZAwF|WqbpUmG zOER4LZY^xFvuk1g4NPXp=9u|}Js9I9U(&;TMuii)7_AjQ&+2$)KcZkJY3q1yYnV5& zb6^yn$x?C!dEsv2J0UKDp`;Bzex`|O~r|`f6|rr8K&ZT zY(K7W_y05LKW(Ie<5VNPmapx{x8EpB)RSw^;*zmk5H{zf5Saj+Gh_qa`i(rW2=o^?L`hlqsF6ZQSd8Os~t19(`bJ; zdKXPrm)=+ZT57)$eLC8A=;(11*=wSuADioIh&l=o@8vSe|g?_TgJ`ZFlEf_ z2%j;tH`Pr&f2I{Axc=)L} z9?l<#fQrmeP~*NX=}X3tv264c$`4uwDkqbB3trFwjzC_Bg-4Z@Q0YnLejO&oNVt!^ z7b<2E!~T-F9-iGa9BMbc_p>Qik-OSPp4*NBEIwdjNH$nWe{*`6k0Vt-d4_%12r19i zpmB*Q4xnyyGgu?)Qa3er>vMyQ?KB|1V23p$gL*t#>aJQuinp^Kd z!_A+dFkl(ve_2_=wrNw_nQjd73x9L8S6G(WoDDGUt4(cYzMEP{dq==X4=ET<3nI!N z;V$mebquD}MXa%m^4WhwKEGKPjdv0ST2=6P&3bI#k%e|o`W7r;2V*3Q33C;-DKYwm zx(K4N*uVlra9rUc48(#X5}!xOxdMKutKcXxDjG6Hf8od*6zVE!!8u{-6eHaN?(m`D zZmj=ki_9Me4*U!jdpW_aV+n9EYa>*l8E;|~6fW_Ap+km%VxgI4&L8EqbUaY`8~5xY{`?4w&E%3p7fVlSp_PNG2N)klbc@5l5DO#5S&!GKgj3& z!Js2&fA)z5l?Q`_wK>xGx?FjWlOPtG)Ni4|)Yi%Za0<(ZfYb_@wy}hmkd>t*hc%y5 zcmXUU&o&eTM^S)gRhL*qrjqx-e1j_JVyaA(BkCjODIaOuGP{_yfQ(Jm)qNwauWlfw z-^)Au>H|@FU%gux4SzrrR^hb*ujM=Y>ZR?}e=(T8X~45D$xQR}gHth4(DJAaY6=V3 z6no&4PhgKW<(}QYkC>1BKF%#PA4Wzvw<`m3O^jiyo13P`B-Tguq1oK%D%+*85VvVM zL`AzjX|GJ&7i}9FDHWdEK-yH_=|43pSx4D|p(qGVD`|DY^wy?*X|Bem3f_F_bxVf0Kel`YD?8zP5drl|Z?$qhDoV$lKLNB#Nqo z!BB}hnJEA?9eX{!M+j&4iQvNF5U3_P60*G}Oa9Cskt5CCY8PG%$$6EKlAHojX<6W+ zDuk))i@+-uiw}%=%Jd?LkKY7)iciCosN-l%_0EpF5XHypW4+vom${x1dq??C7K4`Ksg$ ze}6cak_^pgz}llFaCr1+ILxtv{bpv6LComv47YAvXQN=#{T8^5Mm);rf!bm`q}bbQ zSQFvW+lXl)A7Z2%Wj-%vy}57ve`DtW1zb7Y575zfAmfGa2g2xA5J3#})PRkjyvTs4 z&$}29>(tQ@zjhvpZmb*)2D8`YTr0SEC<3k*f5yR@skYUQ z217bm@<;J_?~u73Cs4Vb>B1zQ;tJ07uCb|-r}zg+yBwj+gTt5YHo{k~k@l8~DE+Gi zVY#(AvZ9(S$>Iw+(oq-Hib3ZOi^rq+uAJT@*j#f&pgz4$w=6du?rS% zJ44cOW|!@_WYiASeC8=us0yv{zLWXdzBmSN`sl9Mj|L>sF7ExoZ|~@<7kRkfFhIji z-O)!ccQ1L?PuIB9a3AOm#i%Gj6MFM-VR#RocBwtMpH0C(oG6Eqf3N04!JOHU<>Czc z`u7L*Y#(T-zX7)!>fxd~2aaKJa%8MIsI57WWNE1x`DKWS(U+1G;~9zzqrFuvV|*fE zl$Q!7FBBHs%=-JPhZ%p0e;E0?@rw+I^SR{z%z&s7`3bo8CyWbo6+Z}b5$P%21YCtH ze+tg=yd&L%?vZqhe~~aDa!PP3rsD-9LK2Yz1r6GabHt3!uQ4jWop`%6`SGEsHP4uj z$j$Hz_H)8IU$|YGi1R>!bGPLdA*S7<7zuA2~kPoXrrsCbNh#SK?MUu0{T3H1Ae~c5bJ}Di(+kBXv>xp)s zg{0zIm?%+0Ktdjb#czYKJ>_7pDuGEM**lr11fo7h1*1YyDpWeEk5=j0woq-KkF{f% zJs%qV1#&J=>qQ21Fe>{?R|E2RxBI_11>gNw7X!9C zniamy$el%#$h;4Y$F8%oKO_^hrFa0Y<_f zG18?@S|xsF6WxlhG{fTLGV^cnQ%P9-jbke3pX=kQDjXTI@7xL3$YStKCs3S5AMs+Mr3_;m3J+ae1W3+t- zcQMo7FxrWBysu}Gfv@zyD0p)h&IO4PG13WsZvS@IlEs>8oYURCe-Ex#S3zY)8l2Ba zhbo-={fM8N+a5suwX1MKE`zdf*Fd=-5K7m6e+#9{mO`?T`X6B&^szgJS@hGzOMvf|x$f$A`e2VG%sLDO)Ar>poT?{Tu z4c4D;H}fc z0NB-yLXSrM5y3&SSXxb9|={P;_?5xSU4RL3@4WP!^xE^pltEie{jre7992V zf)c!*@b-ozE30PC;>{1n&09Z<`Hf5-QRvv2igBIK!Kl!@;^F(79>7QFF_(8F&C+N*~rHW`H-v! zVp|LrDI2Z$@-SSGuIr3|e=mUv(wxbYBPRx0@ML zr`GTC@TlK4)3ZKvwom=;1z*+g!fX1JDfOw24)xn@ZEtS3w!V=(e`(?!!Pv2Wwo8-C z$1R8%%DeGzg4)p|3p2s??opS477gZsnZS|nfYyo zLV3jucW`t%uAUY-%^3jMVPE~+P6#>a9Tfoe0tUp7c^diH^uVWM9;^N@s$&)Z| z-aPhmU0ofdf2Oig(1f8-dINly$VBoY!>(MqbgAUgl|``0Dph~{cG2*mEsSV&?rdh9pX17=EBjh0nU5}uzMKX-8vLza{2>Y zT~8w5HJl%w#2+rsWhj*1U}JRrc}>w=(41Tj?Yo9Sf4O2HtQXA(sNzFZbnIU2;*ye* z@)JX$^agPWDGi!}nV>22gZ9kftl)ql;29o>Pe}Tn6v}C7X~0k@y}_34J3*7{iiVp* z%=c7z9uO0kcpba^5i4YBKuYhhYwr=zWZQwJaK^I+Jj8)R+4=1fi6p70sE8Qwl^sf; z{1;JNVtN|qe!8GJXwk)hBcOe!9$dI|4I(2WQ}L(Wzho$sUO?w&{cV6tDWEA0VAF1U z{tVERuK~E3iwn~gH1$$?mDfy7O;_L?@4%LAsdbrq4>o7+Inb1pytP`TQfJ~p0t9ytE;EA!cXtRDf_w16-GT&ng1bAL@B8;* z&)KKldgy-W?&@1rw{Q39>iO5d&%{Jc`mFS$C=VK4}=Qn-)s%$&>mtt4Jm`N*{6pXlswx0=_Jec_S ztlDCr6g2H)5jIQ`qZLNs$bu>@JD4|AucLAiR|}Qm+uaNf2_;t{gU!ot>3P8=S097^ zWJ{5M5?fyR26igCSa@%gk9}M?^aDR3D!bP9Rk1JpIQC!>6JTh4RKRO7Y%)aV?8n*q z?F5f}MPa$zAg`0c7~zX-LQ zuy5xjSh#kl>fBS$4JhdF3F}sWAgH5C9t}erRof-JI8Aza?f$(HeQ~?I%9kL!Dv4lR z{7)JD_QhL|sM)yvf@htmw7!P8LeX6}t#Psnb&vSTP1I*UIf5n1Q88AZwVuSlm9*m+ zQ0&;voJ%kF=5j5!?ua3yc=&{v@j`y01yq4V!!3%blK>7p4s3zj$KbLY$RgCU8ENhR zG-p$Vu~7c*9?fK@7xxFSm7;U4bkdl_jhGY%+S>P~RGVnZ$wpEm2~sKvOR=Y&tb5ZY zkKrD7U)4o`IxPzo+mX--nA&7|NF8#axW)|c5XX>Zn3JbJ^+&2(sotw24RU&Q5D6q! zh2E-gV5Efs-YhPT(JCy45RkP-8*kz-TTX7t04O4qL$?7ioGs)_M9Soz*id38!T08>wycdiDrDWv~{P)MVLVS>3 zqHepxZPgzv_|4_>Z&tp)6ct9Rj;a9 zL}Nagh|{#ZV(rpV9^$rFrFw)x=a{dx+gjv zUDaO4*bZ}8y98ePTB7V>n%fNdsF_EDp8c|_PN1hA$l{gh#5C)M_)Ox^Up2xDDy1`S zAtwGK>Tf9K3Hb2)8DM?v5W8Q4AAg!Tv^&6};fW}^n2(w{^~=9J{~eoJZfjf-zpK4y z>?5-*;=I?dvp0tDa*<^y&pVHFW_^$J2iE05j?rUZhu^PnIeA|`2_T$rSl+SWt$i7y zfHFyjeWyUkW+GQI=mU=b)XgVR!PXp$2k1o|ZWN359aw&>Wb2)%FMl;jkvCN9mdrjk zdIgUzWQ%Hk%}s6?I5+a(+OJY!5oKG{)-rQzKT}C6?`u%(954!lW_>t*1?tksS>bX& zb16&5zAgiI2Wp=p+!N*~IGl!V=%L+AUSm}%T?bD#mRBfK=y{+&cD?5E)7wqTK#6{* zai=ua#YWKQ7_%M|+{jq`GKB)J3e`iIl(lkIHDIvX)w;@N$sv~OZY=-hn#H6DwN@Wo z34KII;{WPfl-!98ecNSo4L4$473kwCtEU{kg5ZXYP|w~GP4||^(dA7DshMY~)tmY@ zhjTGGMRinP%dFg7Tm}WvLe_?tCfTzArHX5jpC2V{EKxt`qbANNh3v8*t$Bnm6r-oo?q*M(h_QyZz*najR4z5Mu?EU zH!B2>ECjqd=BJk;;5H2<04fm*t?A|dlBB#5-(7pW!+UR}hsL`vm+e=AEMIUXf{^?| ztl-2#@QJZ6!8`PXMNU}kU|&x+D=q^!^h}LTvPt)aIgrBruFl~d1j=fDiuv+>1BqxIfQ2E?RgPSBkW^*T2%u61_uaq(E;??SE>MJ?kDd zfM46?;N&o?ml)~E8qP_ze?RH|C^z0w!h-D~Hgiyb2}UGp?verGUh**+K`wm?)mzFXL(AN#Nn0yQjjpAi^0L+8r&47PE@mh9ixBSj?HA-OReIy5 zt)I3Y5&i4L^mjv+EqSZzD_5jUqrPw1oS2H!O+&Weq|Uwp4Y~u3;2JPTcXeZfKEpa2 zfs|-Glpt;?YQz;R38@KmG)W{T2C-P+z4;K5TIcIojyGg(?)zKY>u3Csp>MK90Ijro zE71li6jPy8+gL8le^pt!Mu{k3Y|oIJz?heyB*foedc1FQTl>PjGt{d^3b$5VA62x} z{^%U#CSB?eGr#O3a=dpq`MP>d(+9u4-aqQ7Q1DM`c^83cZfO)b^py*Dm*%NGl(;Jx z8T4@*8svCF{+$65=V675OYGA876KXap-CQF09$tgh}+g=o3#yqs&iIBI~YlpTZy_Q zy7qs5SOK8xh5?sr)H~K?_N^5pkdFar!9Xw{wxU7KfatBq2A@te;&z*7wx$kFE%IH& ztBSL%_f63STEO+apKGmn=y!1SCPf3N8NGD&Z2;#o>}rnaj)fVCo_qLq5O21256}II zF>;yUX|9oE*q7DISe|H6voPNkby*rf-eo_87&f;n5bUH$LAUfH*CmCiqXn1tbkhMkZ;3>Q z!_$I1jm!vvXL7&C@_F`ntSKb=xO43p4K)N;(1l}RZOK?V`q`agV`T1}d^`Us>r-<; zxwsx%RuP+fj46AS$<+BA-?^WBJvMeD2U^eSY>ZNm#t%IR;&W}|J+b{p$fpT{_y2|A zxGh{=Uon5d(;}}l4qviBIWm1)xXhw}xI}y&it_@0%G&-9cH-ifppBJBD4=BTt z(nT>s6cr2ju`acmH{x7y;8nFui)-EM;hEP8Bcykb58V~e;TqD=pWPPBiETxR8Le)! z_ymUMP+riJ)4+1iWTA@emaKs@=y>L@HJTVZW=F9Lh7XB<%@w{L9Se9E&sNh_?70rW zCds*4ul_*h$HvAE^L0ip$P1DahH{vDiJmD`J4;LHnlI6Ze*`NO?wRK&?b+l|y-Ff|4x6tGT zn8YY=2FGA>z9MJI} zP`PXG>>D-M(*=+7rZW|Np;xFNhNXXGJT@T(3!o@`3N7PDwd@G!F1Xnoj2wvK7T0SD zl!-@_e_aCG^V!^OcdT0OE1(h$ZTLEGiQ|1t^5r=n8*P1`2mMDR`vk9_=B$$tO z`y>}rly0!h&lAMn4OMJZ(^!Lls-HHSXC6YP>VW%~lOKn52;@pn?xgw`&|=r@*YDr( zDNPTY#0?2VczLAC8HHyXw#);)>21Z14$+(a995tcWnWA;jE)G{#L6ju2i9Q};Ziz{ zSQKmJXg_gS-^X5NYhh*>$hJ%iNah{L29@MludurX`oy2Nv6>Jr_YTm1@}(+`C}iN1 z)y$#u1F0sLBlpp$Q^z8Yvt&@dH_2ZmnyRL>JITSwK%BBxjvX@5LoNG-UvxN5`iDd3 zeF8gFPKx{$e#trcebEP28Ju5c3FCZNP3(0o{=I7j8X!3s z7o;}PNU0Yi(67>!2upjrni})5e{TSp_ypy5TS%xGqhE#(x%`$A1h$VeHdI#GFo-h* zeYB~a{a&MOZ*YpAG^NjmtYA=uY#5%loJuNy<#HqomNU~%dBC)Yi-$pw1 zj-d6L6~^53P30KxZhh;l=O*)dYfZ0?V)FP7RGz+7pT<<>{kkIZtL4{Xw|uZ@w!lTG z&4{oDWuz)f*f1g%ejfw_EFvJffWEN{RrPf7RXm+v>zwLYSKdr*#I1DuHIrr0daKsdw8;s}TKl8VhJa6@J4fgYoxzX! z`wWYsArrHTR4J;__)6~F2myXZ89xr%H~8OPY(Si zIl#gbg(*e&Du{Paz5ZiS3Q9R$9^1&L`iHbI?Mq8}6Uw+^hgj1uJgM0wvS#EoZ@2R> zKf7S@aScpNIIIR^3pHjH9uDA2KohBT>q`z#!-;DGqoZq(uCHsJB1ng?{Vt+LEISeB zSA@Qp`Pkc=`&f*{AJtUHd8uZxUSx~vHhkHToyW1YosUK*G!yBINwNP~muOEbqSY|k zCEYMHqSVmaQ!rvXU0m}T2;?SZ$k#8I3Ou~+3w#Lm~~7%p-<(wEQr9A9Q6nUI&$lR+vbfcPG1%6h{Y|6{@-bQkQ2}>D+ z-MBknFG>$D7;;L?LowDDsOd!`&3t!4S%&nLL>aspezfzw+Iykkf8 zU?hInB7wgPRymD46vjb<125awdo#f0&#wqgTB~i}2AT(Ho=^I6Cbx8MZ3o0@ySbth zxMJknQ(+Vo5}5y|V+HI%`I5 znfXdj{%CCth`KpmrW|_1#l?#zhl%U@M$e^ypKs;+)R66zC;AZ%^0x zqy7E;zlBw0@_KO>7_?)^ z=6EFuQSuAcG!GZoV@w`qax>`;rw*E8@&a2hE-eByy^R;4^7F*+Uo3j9X6PdsaDe#z zZoXCP^~;iNPnL*Bdr?_TXiV9n2B%>_*&$UUqz#$%cqz{GdN#+@$jHbFES#F2F6AIa zr{C<76mz&F+8CdWkn;7*pR3Ce_KE33gTXdAGm9M>6?r8fz0@J%#f!4n9g5S17CA_W zv5FCjhJ+-Of2Ppl9_A$vA=jOkb>YNT$Rs+g-{!9^Bi3BlSXh;5e@yC;a(T~c20|w_ zVC$=gyEOXT91Bn({awrO>o~&^9(YE`*a7d03amevm0?UyDGBnpvk{ixBQN$?wW+_~icL?q{SyhOg`B7|35 zdf&a^hQ}5a;)jZJKK~oX(J@uIL9Dv^^yy}`yZK6m%le#X%@ApFvI5LJ`&^9G?!p)7 z2uVyD%&n=J{O|mTA1u_{x?5Q>7w3I1Vr1_v>i?nfy`!fGxi6X;vjnQsU`Nib--s8C zP3cYw|29~Ur}nr+I{UOG3)6fqDkze&(83`yy~uCPla9Vw)m!{4XTbuI;}S2TK%35? zBsM8xcXxL+Qt!*%xUPDx|Pmn+u{D(HI=`ac5ZI2<2>oWsO3idRKgoEng%L@A}^QQ^GznixDShxEQH#0 z{RwKs+k($(gBQ5*sv57^6Funi2sIwZ0MsU<-T20mPE%7e$mySBGzvJVtK)@*^a3oK z5tbIPRr4$)uQ{+oJx&nA@;FYf)a)C*E=W{9Z*?)ZMN6XL;%d(=E_QE^W^|5@V&7jM z`Q$h8Lw|T(?yCDJm~GWgI9hfLMrYBr%2>)vpAYvoQWGKGoUG>b{1px^UL=y_#6*Cm zKH^=aJPc(eH#80Fd`cMJPfo34`6MvM_d*DR(d5disNjV5nt;sA%+%zpy7`a>Zr2`3 zw9)GM{c|~%=`d>Hit><=B zg(?rpn?LG+pxC@%!FyJh5w^xb%*>%^v^xld1A5?+3+x8WCjf&l5^7 zcmVfOmO+H*r^&;r(@)D|{~{-BK>T*gJAj0WNOTPB^{QP(Kedxc0xb!jiUGvWOcoXe}`W=UyK9gk3y9Efud*o)mry+~b zAb3i9hy3sht=F<7)ug1bJW;Io|g6_A6yR@zAJ9UotyWgfm4;$&zwD zFbH8AgfR3N&Ao~Amx9|U$(1ak2t`7H^d?wvAhQGyY@p&AZ5Pw&2nI!>8O0Epi_5e+19)uilZIBd1#7hBKFz zV4Z4yrf(6JrX&)2fSumJU!Dq1$uYxZ5!tlLK#0EIS^7}v6fLDvzaj*=9s`|IpUgoB z$-)&TeW?EsI3^5A$RrL3(l@~jpR)$sElNRZNaGB$zBSg6qxs!ms#o0YQHgmIwYIi~ z0wiq9&ZIOu(7j^o@iV)&`@O($GcddrXE|4tgC_M1;jb9h%2>OCVyck8PLqH>$sYJ# z5gMIifOZcKb~c!VO&-apsIcBeQz6iI_fgOWz0{GY;6iE9EY; zUFKotvY_C6xkwN_LLURdw)IV5O;$_VzqlgS7__yuB|+6!-EJLU0V!G^^7A2xkz}~Y zP`me%5QuoDxS!rUK(~_*Q9hTjC*-6P5G%|t&1jd={vc!s~?|i(VRyh*r{39N^#{v=e~M7YwbD-(v;Mo3rO_@xFF6%p{)B%dpza!dX-=zqHZ zV_WsV9sM6Y{AYR)0mr(@YNz~(?3HB MZ&hR~q>Tdp3o7B_!2kdN delta 6378 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 gV4BWPf`HJimL|;h{>#|n`Cmjt<8 diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index e998c941..ef724717 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,7 +1,7 @@ [ [ "2018-2-4", - "New documentation: JSDoc" + "New documentations: Jekyll and JSDoc" ], [ "2017-11-26", "New documentations: Bluebird, ESLint and Homebrew" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index adabe626..04da2985 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -320,6 +320,11 @@ credits = [ '2008-2017 Pivotal Labs', 'MIT', 'https://raw.githubusercontent.com/jasmine/jasmine/master/MIT.LICENSE' + ], [ + 'Jekyll', + '2008-2018 Tom Preston-Werner and Jekyll contributors', + 'MIT', + 'https://raw.githubusercontent.com/jekyll/jekyll/master/LICENSE' ], [ 'Jest', '2014-present Facebook Inc.', diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index 96d5e445..c8dc1f8f 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -55,6 +55,7 @@ 'pages/github', 'pages/go', 'pages/haskell', + 'pages/jekyll', 'pages/jquery', 'pages/julia', 'pages/knockout', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 08dcc4dd..427f0eea 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -168,3 +168,4 @@ ._icon-bluebird:before { background-position: -8rem -2rem; @extend %doc-icon-2; } ._icon-eslint:before { background-position: -9rem -2rem; @extend %doc-icon-2; } ._icon-homebrew:before { background-position: 0 -3rem; @extend %doc-icon-2; } +._icon-jekyll:before { background-position: -1rem -3rem; @extend %doc-icon-2; } diff --git a/assets/stylesheets/pages/_jekyll.scss b/assets/stylesheets/pages/_jekyll.scss index 2a30051f..00a86795 100644 --- a/assets/stylesheets/pages/_jekyll.scss +++ b/assets/stylesheets/pages/_jekyll.scss @@ -1,35 +1,7 @@ ._jekyll { - h2, h3 { @extend %block-heading; } + @extend %simple; - .note { - @extend %note; - - h5 { - margin-top: 0.25em; - } - - position: relative; - &::after { - content: attr(data-type); - opacity: 0.5; - text-transform: uppercase; - position: absolute; - top: 0.25em; - right: 0.5em; - font-size: 0.8em; - pointer-events: none; - } - - // Other note types currently unstyled: - // plain - // tip - // feature - &.note-info { @extend %note-blue; } - &.note-warning { @extend %note-red; } - &.note-unreleased { @extend %note-orange; } - } - - pre { - font-size: inherit; - } + .note.info { @extend %note-blue; } + .note.warning { @extend %note-red; } + .note.unreleased { @extend %note-orange; } } diff --git a/lib/docs/filters/jekyll/clean_html.rb b/lib/docs/filters/jekyll/clean_html.rb index d27d0ea4..67e29793 100644 --- a/lib/docs/filters/jekyll/clean_html.rb +++ b/lib/docs/filters/jekyll/clean_html.rb @@ -2,50 +2,38 @@ module Docs class Jekyll class CleanHtmlFilter < Filter def call - css('.improve, .section-nav').each(&:remove) + @doc = at_css('article') + + at_css('h1').content = 'Jekyll' if root_page? + + css('.improve, .section-nav').remove css('div.highlighter-rouge').each do |node| pre = node.at_css('pre') - # copy over the highlighting metadata - match = /language-(\w+)/.match(node['class']) + lang = node['class'][/language-(\w+)/, 1] # HACK: Prism shell highlighting highlights `|`, # which makes the tree on this page look terrible - if match && !(slug == /structure/ && match[1] == 'sh') - lang = match[1] - if lang == 'sh' - lang = 'bash' - elsif lang == 'liquid' - lang = 'django' # Close enough. - end - pre['class'] = nil + unless slug.include?('structure') && lang == 'sh' + lang = 'bash' if lang == 'sh' pre['data-language'] = lang end - # Remove the server-rendered syntax highlighting - code = pre.at_css('code') - code.content = code.text - - # Remove the div.highlighter-rouge and div.highlight wrapping the
-          node.add_next_sibling pre
-          node.remove
+          pre.remove_attribute('class')
+          pre.content = pre.content
+          node.replace(pre)
         end
 
-        css('code').each do |node|
-          node['class'] = ''
-        end
+        css('code').remove_attr('class')
 
         css('.note').each do |node|
-          node_type = /note ?(\w+)?/.match(node['class'])[1] || 'tip'
+          node.name = 'blockquote'
 
           # 
...
...
->
...
(node > 'br').each(&:remove) #
...

...

...

...
-> #
...

...
...

...
node.css('br + br').each(&:remove) - - node['class'] = "note note-#{node_type}" - node['data-type'] = node_type end doc diff --git a/lib/docs/filters/jekyll/entries.rb b/lib/docs/filters/jekyll/entries.rb index cf6b34b2..fd8be9ac 100644 --- a/lib/docs/filters/jekyll/entries.rb +++ b/lib/docs/filters/jekyll/entries.rb @@ -1,13 +1,12 @@ module Docs class Jekyll class EntriesFilter < Docs::EntriesFilter - def get_name at_css('h1').content end def get_type - if /continuous-integration/.match(slug) + if slug.include?('continuous-integration') 'Deployment' else nav_link = doc.document # document diff --git a/lib/docs/scrapers/jekyll.rb b/lib/docs/scrapers/jekyll.rb index 988e77bd..1faaa9de 100644 --- a/lib/docs/scrapers/jekyll.rb +++ b/lib/docs/scrapers/jekyll.rb @@ -1,7 +1,7 @@ module Docs class Jekyll < UrlScraper self.type = 'jekyll' - self.release = '3.6.2' + self.release = '3.7.2' self.base_url = 'https://jekyllrb.com/docs/' self.root_path = 'home/' self.links = { @@ -12,23 +12,21 @@ module Docs html_filters.push 'jekyll/clean_html', 'jekyll/entries' options[:trailing_slash] = true - options[:container] = 'article' - options[:skip] = [ - '', - '/' - ] + options[:skip] = %w(sites/ upgrading/) options[:skip_patterns] = [ /conduct/, /history/, /maintaining/, - /contributing/ + /contributing/, ] + options[:replace_paths] = { + '' => 'home/', + '/' => 'home/' + } + options[:attribution] = <<-HTML - © 2008–2017 Tom Preston-Werner and Jekyll contributors
- Licensed under - - the MIT license - + © 2008–2018 Tom Preston-Werner and Jekyll contributors
+ Licensed under the MIT license. HTML end end diff --git a/public/icons/docs/jekyll/16.png b/public/icons/docs/jekyll/16.png index aeb20c40aac35c0f9231dad3af159ffc04d1b60e..5ed82ea0bc206d0bc4c6834858b45ce4f397ff14 100644 GIT binary patch delta 376 zcmV-;0f+wO0+R!fB!5~-L_t(|0hLe#tejyGtc|#~ZQC}Y+Kn32wrxda^lTev+qTW= zUF`nf#MvEo_#dQF`GrrPzc89xS{?ux)PWR2q2zBtVKMIAzmJ-l8gDEXn?jikpg)by z47bx5P$*UKc)T?LI#U*~SS)AT+UekMc`zDH2t}jYh~o44LVtQzKq8gF;c%D$bfruV z27@y)(NlB=3mT;wet+-@k-J*0d6RYL7L~yC@k=T*-b9k|y0_-#+RNrG0(aOLxa#T~ ziQMgW`~I?ndr&iC43x{(AQTE6BNE_NmzNjKnhwU4X|TL};|0)%GC3R$539a=CE2=T z14JXo!>dw%CvkGuDwQ`%wyZ+K@G;OGJcf+mVj_W-pWjtQ<0pVUb|UP#`C=ln-|t^s zcKQ%1hmL}L=6v|Q-U~zmKA&%4_3=Zg)}f&U|g8i!_PH8zDUvKGyvY*L9t5TaH0 zV%OuPWIv0*MFZLogt`*kgfa+zMvxLST|nCS(b=BE!+XwoU!_pU$NZzzq=8M>C6n1% z*k4ToR4V68#F*T1j!wHxuh&~1plKS#ViDW6ux*R0YE^Cp-+wmbBf4v^n=pxehvyWEb#h4SYDOw(lVL!b=>vvP@M zt0`yYBhMplK0{$e@Sv{|$A3rV*B3@YVC{RXpKWpd+)50SGB1se<1n4hm`p?>V6G3s cFkCv$Kc=8pvchLQ(*OVf07*qoM6N<$g01tQyZ`_I diff --git a/public/icons/docs/jekyll/16@2x.png b/public/icons/docs/jekyll/16@2x.png index 1bf8b58f03aa7fd0d1550d9033551d377b18b62b..5abb95608aa85c634fb89c09ce52cbc0719e3998 100644 GIT binary patch delta 937 zcmV;a16KU02EGT7BYy*hNklzl2%e_U?wzu9d5#eTnk#Bxfm(b3V({`~ttJow;4 zIPJ7kaqqqN4rk0zWxCz|%>Y*94lp@6xwA^6!wi)MufOpo&VM-b3>>g)CTtpvc7!|qsM zzKoDXwN_{CAJFk&Bd!3UP}IF>_G}E%Sb~`kq9~!;?f%01;IlW)eaHY<`~86slBo>J zWInmw9@6J0aRtZ~3h%JiJDeV{F@z&A2-zI!LYA3N0DrIwPxGzfc6+5o=3|fX1nvF* zrb7JTXJ)=V=_00@&D~D(_fMaR*h7z@u+}1?*s>_PY^);p~sa89`k>H52s&z688QAm zif6ap39`clMS@5B+SB;|sDm(#ww{FmV!P~t%1LK1^JM|7%r$tNc84_c#`EycPCG+Q z0Dmq5$nLv8#E(DYA3UNcUTFO83rsun82nG|H&F2awZE|A9?ArdAY{MPJaa$(J8&P& zAoYp{4_kDu_odv?gVv$wmrI7KvbFleiPc*_{~= zK}E2bS)Jt42j1Ju`+VN-`+a$yN9pM~5U`1%vdOXO0OC^*NPlhHMqgh)^}0)CevWc^ z2G8?0PJvW1#oo?NCMOFpdF#wj;PHQ^Nk3XH_@S*RRpPOTQTN`K2 zo+Su^=${~$FA$H%X*3%2_YZJnc$h>Y&b6yoqgTMP+Ue-%!1Fw$ln5!2QZidEbLGmf zD2fs-KrUZE(|Q!7RS-qiGsKtlhrR@VI^ZR`kCh zlgW@sB;LyZX5IPYcO1uw9w1-nMO9UTAV7+D@)wI^>z2RiUyw|u=iw6!~oe`4k;zB>tYx>Vs;ksaFXH{GgR`X0rL4?8h?w=aeljrm?;x`JcIVjWp125 z7kw?*y?YNy=Ov35FJR0)M<^=hj<5L3t5dC3L%n}fCd}sxtlqkguwP*)3MOD4KgL+G z7&>`qfR>gPy4q5>PyQuXTp`}xilGVYfp58Y@6YJ_f$jr6@Xr+f!ZJD_mTk;Jj`6=I z@qIsffPY+fH}&ZfI|j4FVkUac!Te!_v9ZyneCar<)?_HRSXo&qeB$O$D6+Wx)sng!8f~h;!e+^RP8nAqu>t>hAKQw zE0D=#&?`@a^ivN1=Fg)Tfz1MEzE zfj9pQJz!0K!{k|}i&AN7W9EXFXb4qcpsbm1XprLFyP*ru2mNJP*6ELJdQn|s;KWIE zx6anSUKWlHa_Q&Gq5A*-3T3^sVLIK)zWw`IwQU|exc^y_hXVM2IE^Y^11n