From 0a09c8904e88692b13f877f8b797bf6f9a9105c2 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 26 Apr 2015 18:36:57 -0400 Subject: [PATCH] Add Apache documentation --- assets/images/icons.png | Bin 28690 -> 29237 bytes assets/images/icons@2x.png | Bin 76413 -> 77831 bytes assets/javascripts/news.json | 2 +- .../templates/pages/about_tmpl.coffee | 5 ++ assets/stylesheets/application-dark.css.scss | 1 + assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 3 +- assets/stylesheets/pages/_apache.scss | 6 ++ lib/docs/filters/apache/clean_html.rb | 41 +++++++++++++ lib/docs/filters/apache/entries.rb | 56 ++++++++++++++++++ lib/docs/scrapers/apache.rb | 37 ++++++++++++ public/icons/docs/apache_http_server/16.png | Bin 0 -> 632 bytes .../icons/docs/apache_http_server/16@2x.png | Bin 0 -> 1426 bytes public/icons/docs/apache_http_server/SOURCE | 1 + 14 files changed, 151 insertions(+), 2 deletions(-) create mode 100644 assets/stylesheets/pages/_apache.scss create mode 100644 lib/docs/filters/apache/clean_html.rb create mode 100644 lib/docs/filters/apache/entries.rb create mode 100644 lib/docs/scrapers/apache.rb create mode 100644 public/icons/docs/apache_http_server/16.png create mode 100644 public/icons/docs/apache_http_server/16@2x.png create mode 100644 public/icons/docs/apache_http_server/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index 1b1906a80d784e51531b3323b1568b697f7fb6d7..1c559c4a00b0b00fbc4d190a06e54fe22fd675dd 100644 GIT binary patch delta 10339 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 B3WWdw delta 9788 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
mBL%=NJNBwmDQy zexs`|wih-ZPRORnRty9<>3_Q2`lCnZk^N{eTUdr5j5iq?(VAP^6l93GA+1V;zL4j^8lLa zV4LMVMWotoxqYdcMG+7we?W2gfs&nw z7~FUE>bn(Qx=rYo^4Vw16&zSyp3CuTW%1h@oG*EU*@+Nas?Hf^vab0wbJRCzKw?c_L%~&mnhBOJ z-H`b^$ULrS`Aa1y<8pW{-LMxS$|rgFS1Txcq>Wt!@xWceM96x1u3uXY@K$kz%d8lg zAHRHYwVPO+#F`-lgja^Dmwv3Ut2KZ39o`bE(YyK>lEtlFCA@43=jRab_;e-GJ;>&@ zW!0-792CrGajGJeyem+EXV^O==iWuvpxux5z)h9*bGXx830|O<_KW9c{l8A%{OV+c za>&&=+xJepU0Ay891OdUVtp*dAt)M{D9~wFLQ)H#?_7}$Y_*5%=pu<`XqancHN<;k z)zPEfaBUa`vilM3L??am%1k>6;B?N|=&lLjYiXi%yLIX?I>bL!7r@;CIKeUl5 zef1YX%@yKq=FOvjMlKqM;^#@@AXwZIU?4Sq%9Wp3)D#nTEVH!vb6(Ju&)vz%X;C)0 zsDIkhj+b#9c(OdZZN1v1KQGbq)R_+rQ}H`uew;NfVVZxYc{qLI*C&{DB?4sqwRw$a z=z~b~v2nCr>lk0-O6w9T$eT58Z@w>QP>l14U>@oU3M-uZmV^Wx5i$Xl*Fab!DBV10NBR0{9p|Gu{hEhI z%U{PL2;OU}-^Z|py97+2-4LWUT4Vx^Y%$R2pEd?Z;7I_5AZqH>%WwFN?iKZiN;-fw ztuw^#L(mnIHo+*NOl`>RW9Bc*Bi!rxd%( zB4#zEqN*#HupR5k$36mC^jy}YE;^c`gU3PHK$?6={7PzceT!xxW)5fmAO3$aM@rX( zU#{pNsoY8jC{p(*+#a)+|9Z&0DFj#yem~z<*tR#2)vI5=F8VV(x@ z@!d*gX_d>B&-BcmN5WOzstv5&Ihk!y+ZTRC_S&6E1@UUY>cqf)f&+Qljmw8>4xL|n z!{<6Gg!7KN2uFH$2P3|>BN!FQuXTG552W=7x|LK+s;p}iweiX@7_B;f6##xw+SPE} zl8SoiH?*o4xO}#L9{_3HjV)nbA|KU{YmsuJ3F6!L?J*vI;B}-b;*sfI*-yAgmv%q7 zi|uva%zL2x1Lt>g97)|1#mA)_9lkbx?{2A}uXo-e5s14=JBAao3umJevT;}_$TO8Q zPQ$+<(shm+lH~NK{Ql;1DjFb#qIe^2OHX~{wNE){hwR9GRFS0%s5ef6Zas zt;k~d#%bW|N`Ew;!@N@5)M14_hps6MISwUdR!duI^tvTXnR{i5yAwBVzITpGPK;@3 zPFG%f6!C}IhwS@1yZF*0*g^{xSG6P2!kQeuGN0>-ulaKD-7~7la{~#U-sg;)njL<= zoaCAm?fb66GiBK??x%)dvFXPIHl9fql|m)=7fVkm<$p zdwC;>9}tPInOgg_|+Dur4UZ-h*B=tFdlwe>1P==^olYYHs1t z3fYoNAhoDhoZL$(GMv(ChG*r=!}rjt{9u&DI9(|zp6+f9Bw#$p$LR=+|^n7 z_c(%o?`p|;8$53P3)yFVDPYfK$|jPMm?f!uspgGd@OJ>pesMNgiGyWYa^1e$ks;<#Yh- zZaOanh@1X@c!WX*u;pxsEIR+Y>W#%E`D0 zCnKz>K*^ZkY#D9K@xRS^Z><)&6?i zp>{-O53IoBIdE=Qu#ag~OM2iMJ#^V~+M7f3dzu@QesD{G?LtsYjE`gsd>CxiXM=;9 z4m*h$g_x(PHQMWMCf8h~0Z)hYoMtN@R1seuH2?g? ze*RM;l&pm0%4nKZZxX6bFf`CzGb5>@wEHXT2B;WqR*mP1ol(+Jr2F8Kfddb!m|-UY zT_rUt?qC=kFLPO^a~ye7n<7cglSPG((``nFKs+Kh8lyJu+jW&#yc($S=8i!>4a!M} zVR)l2?j0;jkUz6hFwR%0$W-TlhXZvI(hT9nF)?Hpcm82@f%8YU}I~z{H(QiD6pd^}B!?po=5GK4u}V? zw&YG3`}2X*SH znBZ?{{#TEnb_V%37xw=J#X-$ciN>Pi!5gi%1aP6E_0DMee7_doDd=fpqw}fb1Bo~| zgl`K5{XQ+Ai1OJ-e(kfHtI~K3c0A=z|90ShQ3ZH&I4(j{Z(MXSP za>#)>m@vGa1?&NilX>w*&%$kTdLVOib2`J3;tq33Lsip)4n`WB_@ag8c|X3=Sh(V^0*CK7W}1m?@j_-3%QR?4 z3)xg-wBJ8jgOWDxD;d9}T~!iYkr`BS6KsS162X2BJhI(Dj#9U`0>Y-rz1TttX)x)N z7$3I_l%M`3E{{7|D8TQ!loefBgoc%_F}79_4`XKYF~YWkr?@jgss+>;@R7bSAIMNO z8j=!(5e?DQ3WEZQf;)YZyFyLA3QGyU;=!R2zuz5W#!TzquaRs zdhr1SH`am?QgBGzCH?c)f?2;09PH!kRhIeAs}$+|<%% zyQqhFWJ&QbAee5)?=R>gD}X znTJm+cSi;IE5F#jOuyV`EHi>GxtjvRcVeIy^ht9uUNIU_GAFUOoTxCWyHQ z_cX`Xe)IclJ&|qv_B`hGJ&jp@BLLJb%1LWi4yMSQfVaH?5iYyjyC>PeT`YkJpn?OQ z5_lK^2V>Q_#vvHf<)W630zGE``G(K_Ix@sd^9b-%oOBIY$6lP5;l7<;dj4!1SR0DD z4H0{r+=QJ`>9#VI(VyuTULI3w5gm_jR;xq1IQ_^{)gKzUJHiz9i9EQ*D#p7F5OG}G^5bIn5tcRXAT1_^-E0n=Ve?NvC_^EKrCSfoUhd&k> z*mMYnrZwJ@<)a(AL=0?6`ibg;0C=!W6`vP&sX%MzNuWke& zSw@0?L>T+Y2a&|~E{$OCFXB?ht^*-)9zmQ6EYKVgN{ci|pCWu^{b|+`mo6>>vJs-mP7_WXWU` zsVg7=72*x+k+AP}+H#NQya34U;D;P$Z@uRM8{_G0w&_J@e#yxebbsPl}4KLln^Gt*4j&oJQXX?UV4LLks;f z9Ye9R))9X5+@VI*8GPgS@N`A|P;mqAB>OSW5KI~HIE4aLvI(jw z@Q}qaqzC;|?xeiMiW^Ek!Og=TUjHyYR*yMu9vI?)M_EB1EAbJxh)ZV> zlmJ67ZA-WzH!DgGGpmuXI#`H)lVbqAB%UU+3I7Wm1&8yV{DL$j*rko4vymY^+>;c@@)9GOcP8}PN(nGRi_QX&CV)a^-xmeXz`+6lG zjPUUVl<*aS1W||M0k@yv&wh5_Jtw`)4j`a+T;ej^`(mIbJvh`yF}iFS-6`-2_}egh z11esQhfU9=5nIxjhRL*#MT?VI;*MknI}R+Z1)d0CA=cpj9zH z0;GnR(1xGzqH@>J(F00Vuj2%0I{nPE*U1sJRJ+C0@2Kpspn?-+zf0&s05=LBNymh>3D<6JaYJbuQ8eGuVd_L?p}l+Btekzz ztCxQ205i7Fem3u&v!t5~k~{a<@#|kYB3|1+Nr>#4N_WvT8aT)d{I$2K#3^zp4MEUS z^!SSgZCmN$w5WoLUY&WN=ZY97u^NykywLs!U!GU|;@aK!Vi-jJ_oOCu03bAqhkdlN zArJ1@W$s=zyM9@G#)ia6PJXJO6C>h{K`Ud1wwpwMtk%%Tj#-U*JcA ziaj~<80ee%fZ+`cT=C?Nss%dukp_7r^cU`&gPJThj1{o8F1^l(K4)F*GyCBh!VG}~90)LvD5fk#Sb+l$!ddE4kH`LffIQ_s8*r@vw=nJD*2J zMmXUR5F)>6YHIq`Lx-kz9aJRa@Vcup)utUx;VvRCt3iYDlP(p5<%S&=B#)q~u;v6P zpai5ngZ~=dZkgJq*M!`?^i$>UYO&o1_L&#Qvrm1;ajqV;!Cf z$p+;-p_;TmX!_B9)+4S8F}kiXxHwi^H<5(zQGh^7Y=4Ua2{CezwLpDA@ z`V}7iC}j8g_1lDK7M&aH*X8%y?!rqyk~^lnDs{rq^d&k`i~U6e@~bFn#4wSE4uXQ< zE|!QlM@@#BD^8=&jBg?U`$Ei4CG9yo7}3e_LUt2Utv?9uCxiJUGKsU<26xzfoxvf3 zip*<4$yy7JkYoy69Z7(dWF+Bc^*;fg@}Xf<`onCvKh!vGir0S#q!n#X898 zKYffYFT9kai#8;}+!)8+NBrhIzFvQqunem-v_Ipoyges=#xE+?Fp9OWL(u`uaWA0c zeg6fe!K!N>?#vozc>KdMq?3}x+nXuvWky3=Xl_=HISZTCxq(Y!<4!YYo(D>$;5$0` zl~0?3RMO8Cf!@LagIp{m_r9o|`ERF7Jb%oES~i$FZ%iUo45pXIChmzU{DMLhPVYtkNg*A<{aL!v2q6G z=(jX;@Z6ZhH-T2fcbb%)_8d=6CV)!p(vWhnJY}x$V3*cePQdg7P8BkC`Hodoqgr~+5 zySoh^uWRd+eGW);4>5ZG8O^}L4APB1WV25-z+&Lq3y993!%12R;AiGc0n6y-uWwVG zvnws~YTWwg6GG>l=CuK_F)<-@F)^{R_$F6TRyLas%{N@md~!$1r`5l7rTa#XDH91c zWy3NQK*nWT{B%r(^qBL0Hu2Bp##)naq_#!!=WbLT zub=%yo}zlncqBwoG1+cy7VHC8)@}8OVGk6v1AnCT2(Vbi368102=5DF(8+odI@!a_iGfLxCkHrmWp>5(#S2;&)J^MeRY;9u@Dl zfkc>^lkH4p{fNpQX>&P`=TK9hQrG(SpF^z(jk!rGFW~RnVo)viw?EJM74E+!cFhaX z?G>F-=G}CKYrO)o47Re`VI7%Sp?%WAotpH*l3zTbJWvfr z7b#>!{7$4-vcBzlF{tY<9@nK7kwUBzyZ1YYL;X^b(J^}WZ%3s@NWmE3{ye^(nIyqcq*DQWwaiJb7cdLAX> zCYK3;^grs?`zLunSrgduhaUqEIvBfJkJ+Dw;&qoc zU$eTJe1Llrc{-d+B6O>8_TYOpWR@g^m03w<*OAdt9I~|pTDgZ$=TO#^6;e^vSWkFz z=MJe7jlGTbuQXlUaf*_Zlp5(H^!^w1Nr8MLOjt5LoBm@MnbaBIN9SY|A@(I65IXPH z9lv$#`prkzFQ)8LlLGyI$m-pDTcM@qgW`12hw;US){sCMj&cf^T7UrZ2};n$JCG+p zq$elK)rhZhx42s^2J6k986l6Cx=`iec|*A{$r*Q+Y`M_^ft!EhhoP#I(?<_QyUb4S zP#^`19O+R%x02%w4PZ!cC8mnRAsVV~(!(Bq<%4rMKpyX1@>^PJ%#CxJw@c{udkDJ$(W&x0`;nCVxrk*hB#Jc?=MK4k{B zX6UwJ8SFKIgV!PX*{v(3TB~8MLq^&<1|a?LHCO@AR;%1oGSIb0jayehD#u;Tv7@p4 zm|wEsq7+=SxqfdH8zZ;#3yXZc=l;q<<8>PuCj%+%MfOp!+=I?hPP}XeHpS&&BG2bv z-@nl2&5Hsb#K^)TAD1zTr(5x${CRxebA8-6rmt?jAEQ0B?Oh5}^g*MHM~Ycz0DzI@ z{!C>|+0_>So;c*Z$M666ICf2vwmQ^T5L;7qFEg5YA5YO+5)wN^e;$1#qLGT zo%2L^wWNKbvh)=991#kZ9iU|OFIr$R=7#RElLu{@V8|mMdr4ybbkjlWwp-i~FTcOA zp^X8s9KEij8Nc>te<{x0Umq`}qY1tv$7g*(johsdZ|y^EZ#U4l2EJCr#f3ew=umGl&$`%$HCvaf7Dkc<|}-J68y0<$P9nm+=o~ zjx~5;RQ zTh|Dl`mq;UX^Bp3)zj1zqV&6Z8v=$oWoX$qr*o&ONbVx2dB=Zr8l_{yLhS7^D}HcC z+KAD2e0l_Dx6p6mc4zGF67+4@@b76S(!Z9I5qtWfnyE|B@P42mN&UK3>oaB|Bz;g- seo?~Se%!G~Q3AW*KcNM&pDBGs-VIKQ9=mXr0R0n)q~hmFaihTh0WMZ<@c;k- delta 13339 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 documentation" + "New Apache HTTP Server and npm documentations" ], [ "2015-03-22", "New Meteor and mocha documentations" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 81ee046f..8eaad397 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -80,6 +80,11 @@ credits = [ '2010-2015 Google, Inc.', 'CC BY', 'http://creativecommons.org/licenses/by/3.0/' + ], [ + 'Apache HTTP Server', + 'The Apache Software Foundation', + 'Apache', + 'http://www.apache.org/licenses/LICENSE-2.0' ], [ 'Backbone.js', '2010-2014 Jeremy Ashkenas, DocumentCloud', diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index 34eb902d..09696ae0 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -30,6 +30,7 @@ @import 'pages/base', 'pages/angular', + 'pages/apache', 'pages/bower', 'pages/c', 'pages/chai', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 4fc1fc87..749ffa94 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -30,6 +30,7 @@ @import 'pages/base', 'pages/angular', + 'pages/apache', 'pages/bower', 'pages/c', 'pages/chai', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 3093a756..cd967057 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -99,4 +99,5 @@ ._icon-symfony:before { background-position: -5rem -7rem; } ._icon-mocha:before { background-position: -6rem -7rem; } ._icon-meteor:before { background-position: -7rem -7rem; @extend %darkIconFix !optional; } -._icon-npm:before { background-position: -8rem -7rem } +._icon-npm:before { background-position: -8rem -7rem; } +._icon-apache_http_server:before { background-position: -9rem -7rem; } diff --git a/assets/stylesheets/pages/_apache.scss b/assets/stylesheets/pages/_apache.scss new file mode 100644 index 00000000..ff494bb5 --- /dev/null +++ b/assets/stylesheets/pages/_apache.scss @@ -0,0 +1,6 @@ +._apache { + @extend %simple; + + .note, .warning { @extend %note; } + .warning { @extend %note-red; } +} diff --git a/lib/docs/filters/apache/clean_html.rb b/lib/docs/filters/apache/clean_html.rb new file mode 100644 index 00000000..3d912f3c --- /dev/null +++ b/lib/docs/filters/apache/clean_html.rb @@ -0,0 +1,41 @@ +module Docs + class Apache + class CleanHtmlFilter < Filter + def call + if root_page? + doc.children = css('h1, .category') + return doc + end + + css('.toplang', '#quickview', '.top').remove + + css('> .section', '#preamble', 'a[href*="dict.html"]', 'code var', 'code strong').each do |node| + node.before(node.children).remove + end + + css('p > code:first-child:last-child', 'td > code:first-child:last-child').each do |node| + next if node.previous.try(:content).present? || node.next.try(:content).present? + node.inner_html = node.inner_html.squish.gsub(/\s*/, "\n") + node.content = node.content.strip + node.name = 'pre' if node.content =~ /\s/ + node.parent.before(node.parent.children).remove if node.parent.name == 'p' + end + + css('code').each do |node| + node.inner_html = node.inner_html.squish + end + + css('.note h3', '.warning h3').each do |node| + node.before("

#{node.inner_html}

").remove + end + + css('h2:not([id]) a[id]:not([href])').each do |node| + node.parent['id'] = node['id'] + node.before(node.children).remove + end + + doc + end + end + end +end diff --git a/lib/docs/filters/apache/entries.rb b/lib/docs/filters/apache/entries.rb new file mode 100644 index 00000000..8fd7f8ae --- /dev/null +++ b/lib/docs/filters/apache/entries.rb @@ -0,0 +1,56 @@ +module Docs + class Apache + class EntriesFilter < Docs::EntriesFilter + def get_name + if slug == 'mod/' + 'Modules' + elsif slug == 'programs/' + 'Programs' + elsif slug == 'mod/core' + 'core' + else + name = at_css('h1').content.strip + name.remove! %r{\ Support\z}i + name.remove! %r{in\ Apache\z} + name.remove! %r{\ documentation\z}i + name.remove! %r{\AApache\ (httpd\ )?(Tutorial:\ )?}i + name.remove! 'HTTP Server Tutorial: ' + name.sub! 'Module mod_', 'mod_' + name.remove! %r{\ \-.*} if slug.start_with?('programs') + name + end + end + + def get_type + if slug.start_with?('howto') + 'Tutorials' + elsif slug.start_with?('platform') + 'Platform Specific Notes' + elsif slug.start_with?('programs') + 'Programs' + elsif slug.start_with?('misc') + 'Miscellaneous' + elsif slug.start_with?('mod/') + 'Modules' + elsif slug.start_with?('ssl/') + 'Guide: SSL/TLS' + elsif slug.start_with?('rewrite/') + 'Guide: Rewrite' + elsif slug.start_with?('vhosts/') + 'Guide: Virtual Host' + else + 'Guide' + end + end + + def additional_entries + css('.directive-section > h2').each_with_object [] do |node, entries| + name = node.content.strip + next unless name.sub!(/\ Directive\z/, '') + name.prepend "#{self.name.start_with?('MPM') ? 'MPM' : self.name}: " + entries << [name, node['id'], 'Directives'] + end + end + end + end +end diff --git a/lib/docs/scrapers/apache.rb b/lib/docs/scrapers/apache.rb new file mode 100644 index 00000000..1c75a11c --- /dev/null +++ b/lib/docs/scrapers/apache.rb @@ -0,0 +1,37 @@ +module Docs + class Apache < UrlScraper + self.name = 'Apache HTTP Server' + self.slug = 'apache_http_server' + self.type = 'apache' + self.version = '2.4.12' + self.base_url = 'http://httpd.apache.org/docs/2.4/en/' + self.links = { + home: 'http://httpd.apache.org/' + } + + html_filters.push 'apache/clean_html', 'apache/entries' + + options[:container] = '#page-content' + + options[:skip] = %w( + upgrading.html + license.html + sitemap.html + glossary.html + mod/quickreference.html + mod/directive-dict.html + mod/directives.html + mod/module-dict.html + programs/other.html) + + options[:skip_patterns] = [ + /\A(da|de|en|es|fr|ja|ko|pt-br|tr|zh-cn)\//, + /\Anew_features/, + /\Adeveloper\// ] + + options[:attribution] = <<-HTML + © The Apache Software Foundation
+ Licensed under the Apache License, Version 2.0. + HTML + end +end diff --git a/public/icons/docs/apache_http_server/16.png b/public/icons/docs/apache_http_server/16.png new file mode 100644 index 0000000000000000000000000000000000000000..1fffcd42a154016e01d4f97d600c79c42219640d GIT binary patch literal 632 zcmV-;0*C#HP)@zbliy0f+G%1ke%R&7dDLA5(kjwZdr}cPYd7G#wVd@;3SJ zY_2+f6f6J9al-7Qt{Jnh_dfv0Ys-m zD*t>jcLFO+ik2%NbY(~}arM1~Ivg;IxLXgl&sTzTEr1x`o|s_`CjgPD2=ckflwr(a zNLZ|aNSshf#Re3mB_{jSET*_iD%3Z$(X_nSmiK9|&odBX9FtzvOFBN>lhdY0f%d7W4! zXf*)DYIwmKnU-K0)l2Q1X6HFFCAZz zPrxrU67eOCkflZ~zg7TXgf%vWkDyh|b)iYj?HY;Swy#0NX|i6_VayREJqSS}S%*U9 zw^3>la(WWMr0jIq5Wz{*3px~5@>}863xa=%k S2m&hr00003_->*-nB)3s~6joqBcK$y&NaSIFtVF-#rFbq&60iBqj2?^0DUSc#FE{Vjb zi_rv$LI@F%MY9Ml3vwF_=9pV?gN-o;OE=rD>t*eF+3|0CTxAHj0sWFE{ZG>LdH?VG zPASB{sEXxd$0jPdjS2><>3E6{uNqf;V$Fn~QgzHFpeVS^>iZIa+G<)* z{O&XSA%Rl7LAOit`*zM&o0nZ># zwgkT%b%58^vy3Zs6G^-Eo3mFv%WLx|qovx63x{e!x!h1OhyY4~!JryUhyjhD93%v9 zaG-nL;kNgv(aidTq$j3pIex#XaB4>K+!^S;Y(>MtGvERN2#kaT7D!;iNCZG&qi2Bu zAPwS@(}qTe{o8G}6J_j(TW%^YRVS#w%2>J(!UI{T-G2tw=IcZn6$=qDz)BwUxt-`G z!r|2u^88BV+W~l}k;p$X&0lZO8_Kg*ErHt$)a*V1+8-FYseD_ADh>~q6hWa?qIOpW znmgL7zjrp2U-S1l00anjLKmTr8i_o4OnUi)YfEtLLKo@|)Iv$)HZ2FzXXiqkIu7-R zj-uuCA1$Z69czDdHMaur5&8)sdIUF*$m@S@h{y#7P_YsLP{q!%XA-9WbR(RHYcZ}M z7c5PWN#hfF05*b)5F+4CJ3y70W*6!bG~u>Kf(EFt>Ecz? z9j`;@WqJ^SPzrr|oCeH3T29EY4k!2B^vqXrV9lxB0 z(&0w&h83y;UDn33q*?g@%!Ee5pMvOxMz!mvb^W&zva{wj_>NoTgbJDy%8r{up5LpHy7oEETemGn<*#BeR z&d&Cxo%Zva+Jp8c01^Qs4zOIvOHtE`S5isq>-L@m%M3uzi9_>#U`{^xv_w>w@9o*s z*HCueXX%s$A%c_8P3R>A@jr?l9%!m)`qY%4tFg9N;Br`Cj2UJ0`b# z)I~wAB|>h-9Bqb~2BpC*Dg?>X8E{nWu+@An&)P=lkIj4Z9bl%Y4C})3u;e>O{cA(Z z6+@C=t6sU~PWf3P;BEu(8b(E0MHO9#Hsj?P4f?g1FRG$Z2*u$U=YU=ccd(GzL`|C6Tn!45^*k(FrJVjpDDz- gICs}x{Qv*}07*qoM6N<$g6AKaqW}N^ literal 0 HcmV?d00001 diff --git a/public/icons/docs/apache_http_server/SOURCE b/public/icons/docs/apache_http_server/SOURCE new file mode 100644 index 00000000..c7afcce2 --- /dev/null +++ b/public/icons/docs/apache_http_server/SOURCE @@ -0,0 +1 @@ +https://github.com/Kapeli/Dash-X-Platform-Resources/blob/master/docset_icons/apache%402x.png