From 955ef5de9533820ba378127d26f175713046e739 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 2 Aug 2015 12:10:11 -0400 Subject: [PATCH] Finish OpenTSDB scraper --- assets/images/icons.png | Bin 30564 -> 31468 bytes assets/images/icons@2x.png | Bin 81536 -> 83198 bytes assets/javascripts/news.json | 3 ++ .../templates/pages/about_tmpl.coffee | 5 +++ assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_opentsdb.scss | 13 ++++--- lib/docs/filters/opentsdb/clean_html.rb | 23 ++++++++---- lib/docs/filters/opentsdb/entries.rb | 34 +++++++----------- lib/docs/scrapers/opentsdb.rb | 11 +++--- public/icons/docs/opentsdb/16.png | Bin 923 -> 874 bytes public/icons/docs/opentsdb/16@2x.png | Bin 1787 -> 1685 bytes 11 files changed, 53 insertions(+), 37 deletions(-) diff --git a/assets/images/icons.png b/assets/images/icons.png index b73d74756a9d1a82a9984444823bb0c15eb1f1db..b49c62a4c90a46679803632d7c0138f35b352e2e 100644 GIT binary patch delta 12449 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 delta 11538 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 Ef+iV=a{vGU diff --git a/assets/images/icons@2x.png b/assets/images/icons@2x.png index 413354abb838ca5e15b6bb77d510acec31d1e223..f5f4a1816fd8d85c4da31c72dd5b66be10c6800e 100644 GIT binary patch delta 8835 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 delta 7160 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 diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index c7171c97..ef4ea66c 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,5 +1,8 @@ [ [ + "2015-08-02", + "New documentation: OpenTSDB" + ], [ "2015-07-26", "Added search abbreviations (e.g. $ is an alias for jQuery).\nClick here to see the full list. Feel free to suggest more on GitHub.", "Added shift + ↓/↑ shortcut for scrolling (same as alt + ↓/↑)." diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index a5b96595..acb12296 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -274,6 +274,11 @@ credits = [ 'npm, Inc. and Contributors
npm is a trademark of npm, Inc.', 'npm', 'https://raw.githubusercontent.com/npm/npm/master/LICENSE' + ], [ + 'OpenTSDB', + '2010-2015 The OpenTSDB Authors', + 'LGPLv2.1', + 'https://raw.githubusercontent.com/OpenTSDB/opentsdb.net/gh-pages/COPYING.LESSER' ], [ 'Phaser', '2015 Richard Davey, Photon Storm Ltd.', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 684e6349..51665043 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -105,3 +105,4 @@ ._icon-webpack:before { background-position: -1rem -8rem; @extend %darkIconFix !optional; } ._icon-phaser:before { background-position: -2rem -8rem; } ._icon-vue:before { background-position: -3rem -8rem; } +._icon-opentsdb:before { background-position: -4rem -8rem; } diff --git a/assets/stylesheets/pages/_opentsdb.scss b/assets/stylesheets/pages/_opentsdb.scss index 7abe9351..308f1c46 100644 --- a/assets/stylesheets/pages/_opentsdb.scss +++ b/assets/stylesheets/pages/_opentsdb.scss @@ -1,7 +1,10 @@ -._opentsdb .section { - > h2 { @extend %block-heading; } - > h3 { @extend %block-label, %label-blue; } - > h4 { font-size: 1em; } +._opentsdb { + @extend %simple; + .admonition { @extend %note; } + .admonition.warning { @extend %note-orange; } + .admonition-title { + margin: 0 0 .25rem; + font-weight: bold; + } } - diff --git a/lib/docs/filters/opentsdb/clean_html.rb b/lib/docs/filters/opentsdb/clean_html.rb index dd3c351d..94d95b45 100644 --- a/lib/docs/filters/opentsdb/clean_html.rb +++ b/lib/docs/filters/opentsdb/clean_html.rb @@ -1,13 +1,24 @@ module Docs - class Opentsdb + class Opentsdb class CleanHtmlFilter < Filter def call - # Reset the page scope to the body, - # we needed the rest of the page for the entries filter. - @doc = at_css(".documentwrapper > .bodywrapper > .body > .section") + @doc = at_css('.documentwrapper > .bodywrapper > .body > .section') - # Remove table borders - css('table').each { |table| table.delete 'border' } + css('> .section').each do |node| + node.before(node.children).remove + end + + css('tt.literal').each do |node| + node.name = 'code' + node.content = node.content + end + + css('div[class*=highlight] .highlight pre').each do |node| + node.parent.parent.before(node) + node.content = node.content.gsub(' ', ' ') + end + + css('table').remove_attr('border') doc end diff --git a/lib/docs/filters/opentsdb/entries.rb b/lib/docs/filters/opentsdb/entries.rb index adb5a3c5..3f947dfe 100644 --- a/lib/docs/filters/opentsdb/entries.rb +++ b/lib/docs/filters/opentsdb/entries.rb @@ -1,34 +1,24 @@ module Docs - class Opentsdb + class Opentsdb class EntriesFilter < Docs::EntriesFilter - def get_name - header = css(".section > h1").first - return header.content.strip unless header.nil? + at_css('.section > h1').content end def get_type - return nil if breadcrumbs.length < 2 - - # This is time for a little bit of cheating - return breadcrumbs[1] if breadcrumbs.include? "HTTP API" - - breadcrumbs.last - end - - def additional_entries - [] + if subpath.start_with?('api_http') + 'HTTP API' + elsif slug.end_with?('/index') + [breadcrumbs[1], name].compact.join(': ') + elsif breadcrumbs.length < 2 + 'Miscellaneous' + else + breadcrumbs[1..2].join(': ') + end end - def breadcrumbs - nav_links = css(".related").first.css("li") - breadcrumbs = nav_links.reject do |node| - node['class'] == "right" - end - - breadcrumbs.map { |node| node.at_css("a").content } - .reject { |link| link.empty? } + @breakcrumbs ||= at_css('.related').css('li:not(.right) a').map(&:content).reject(&:blank?) end end end diff --git a/lib/docs/scrapers/opentsdb.rb b/lib/docs/scrapers/opentsdb.rb index 0c27cf35..7b9f4e76 100644 --- a/lib/docs/scrapers/opentsdb.rb +++ b/lib/docs/scrapers/opentsdb.rb @@ -2,18 +2,21 @@ module Docs class Opentsdb < UrlScraper self.name = 'OpenTSDB' self.type = 'opentsdb' - self.version = '2.1' + self.version = '2.1.0' self.base_url = 'http://opentsdb.net/docs/build/html/' self.root_path = 'index.html' + self.links = { + home: 'http://opentsdb.net/', + code: 'https://github.com/OpenTSDB/opentsdb' + } html_filters.push 'opentsdb/entries', 'opentsdb/clean_html' - options[:skip] = %w(genindex.html search.html) - options[:attribution] = <<-HTML - © 2015 OpenTSDB + © 2010–2015 The OpenTSDB Authors
+ Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses. HTML end end diff --git a/public/icons/docs/opentsdb/16.png b/public/icons/docs/opentsdb/16.png index 4a7066cc44104dca04f67f86f7531f374169a9c9..f19b4f6165bb7cf6eed3b2987f3bd6ede874ddb8 100644 GIT binary patch delta 852 zcmV-a1FQU-2kHipBYy)iNklnRI&VPusQ>Q~!pP zM@BaP{A2YA)~N*V5XzEdo_pshpKoL*c#UiPVYakG5#s^^rz*vyIi>ykHBVmo#St^t z9B_IpQX*^Bs(zSI3elYr5;UGxu>^e!xvq9g@Mionl+1mLe@S1vti=DPhZ zUAbf5+aiG~j3*Z|JM2^5{f;oOjJ6e9_j3jK!Ad<0B8GCcA5wTgC5l2VwkZ~@>R7OX zaG(YYE|ztmRH?=g2vyLig)+pvvn5={Fa(BD%Dc|fB7c=`+gdt)za{r&%gF(4#r4@r zJUo!vcK^fYeK+CFKW@9e;RgI?9y+fj87aMJ_+URz?-z2o9>VAH1FbD=a@DVLUm%hz`5{`1+2h#~A69$_32LY@^! z`SVv9n9GUey#b|Bt*7qWosDSac%P7!V2iIiWdGYl^fw5Q%ncO_RYL%VWiSx5Mg$1} zGfhDbO%;z88{AtJxBmX-tD2O`7Fdx*pqW?LRhx|1M0GbRJr3^q9e eWf<%Su;YL1f3P*Y$_mN=00003_(t+g|I z?>S^=W^$-W>_~%PD~cAy7J>y^6}2ce^+JLQwn)LtdIJB0H?4|@BK1(LpcNxlq7*@j zG+;fXX=+Q8CM1(&GRe&BIqbdmTAvrm<#Y4iJnusT?|eE9#(yw~Vm9;?Nq!#8CjbD1 zSFDvrkU0YY4EjhApJ&E*02~m_D+28X0RX^?dkLmQB(ea58AC#FM4&7HFr&oaej$(t z2+X`kF~bl+I!=t0S}~3`3NhRkU?m{9(_dKDQdlq(h@i`B!!a0uFaRh~Ea(uy3|4Es z;k~<8FOK$pyMK7QR`}Uh2^ksxI5GRMbwckYp)5(}%P;T${1!Xjk&a2F+0v3C#^VGo zgtffc-~Y|^H=h0CzDw8d9?fOyWUadP`@egWwWMn_B{T^bJ^thcD49I5SXq}>)QxYp2aJ#6OS`XQp0Um@n@?sQ{Y5<@AKj3rtWihT?9herNB zw%*8>v=v9!!ysKMEFM2`@Z7KOPmCXpI&SLGJyYHJO#M`~m3z||X9>(!oqXmKZJ62x zzn&`wn}2)X{p$6P7bxEMX`+CY(rGJL81Y)3C@4>C=K&d-ehu0MWOi&hd z8iXEgq)p5C24wQR0jxF(eya6HA-h4wIA;wD2*HzS70znYb;dF)Fe=n@^2>ded52)t z+0fZvhPzjXbixnD*5RzTHW>uK+}!YEP@1fi|1`Ym|90q|huDgYA(WL))Fcu7#0nHr z8-C9jn8QT!Raa>=+l6B*>lv+_l>2Em&81SqS9syt` zNNLkSwiZbOcq>PrNx95+>jy+BWi3qud?$zuGp`bf+swAHJ-SQ~iP>fV^I%gYP=&!M b089S^?0>K|F&|P!00000NkvXXu0mjfK&_rM diff --git a/public/icons/docs/opentsdb/16@2x.png b/public/icons/docs/opentsdb/16@2x.png index 25ecb05223df72e7e39873c25c785e261f4dd3ae..4d49f50fa9bd61c5307079f0004384b832f5445f 100644 GIT binary patch delta 1669 zcmV;0273AX4V4X$BYy^5Nkl}qB)c}oDP)@M0=gD296)AgMTc40;CC%_Tl<7jCtSF zhx@C7EmzQJk(Gdm4WQk6Leyt`n03meLynQ6c1$1<5FVVb)D9y*63`widA=GR$Q3535N>i9E*RX))r2PB z1Bf8lj++A7SY)DS90Q2te(F%^B+M3gYw&SuSjw${Xw%gPp^-0e2yfH*e@*EK*qFs|kf*_+tvJ7rUoUOw5iK{a*1W7xQZ_CEQa;?%f$3Q&6Y@*Ezg zgyLJk27i#JJV5MPWWdmRlXlV})5x(0Z9fYP90z3WUT#x*cx=t>?-Bnk3L z0aN2T=UXuLfc<-A1J|MfrFSh$7ewG~MFZ2E5h%I{D6@N6fRX`ovraxG?$YqL$$0O7SrL8gj)c~A z`hQdPw;)}99JOCO8ZLA%5`Rud1=!||@psG`v)4Xz@b=3K7XH&X;dtGx%Mx4HeVNdr z!)*1>8XMP5h;Q34GrnCn#n5o;EC^pRAPSBb7M=w(YUjoIL-w7Y?bO(jzi7pw6Jsr{ zYadN%TPr8DY>*92H$8B=ZRI4^V4ycYv445Z7{U)7>RCJ(kcYIkm5Zg$Rp0U8&FB8| zEPzqRU_kuO=Q)q8x+~w%h*Wg0bU5T^1_1Jq+_vT(esFTzI{9(yPCX#nk~jzu`1iT7 zNndYh(*KN5f5DiV^&gz5yG=e(cdHy%d)wo~_hql{w=MtU@c~)ij6Goc0ClqfL#ns$?U8%}#y-V@|(dL4G@`uE`!nw#sA2=hA3v!GBgo6CZS0lRW zE>2GzpnhAgbl>`F z#K6Fr7Z)4_)NgxkhG;z?FaY;2&A$Lp;kn^T2DsXX2RPKR9ruht3cpt};COyfG=PB| z@qz?@haV^zIQQa$%YfY<78w{8XxAPpyKN-u=(=JAURW3lsNaqpn_$iH9)EF1U;bHf z4+bx&02rJXDKap^|H5RB0RK-!`)EW$Bm0HL34r=;1@!UcB4=d94{_9!DK(b z@Z{MS=Es-4Kk;Eew6S85HZ0A6&IZ>CnUNAk?K>05uOxqxb6%ej=6G@buNu%h4IOjs zr=$D;3OUaY1!n@MJsK)#;D34>;pc`z{deSS?YI511(;prCW2Jjo_9AORYcMf=h`mV zlI&in0?C3jL~sNE(YD-RjPcUQNoHuvwbg*ocO{Sa)d0aHUQk*}0lSP6^_d)MQ}OQT zziv#BK2aa>zQDD>{Ez#B34y6vUY7F?N2wiKuj7EA6C)_XPo3)lfqwf70PWWB|6^k! z*cVtM1yTO^#v4EweiDSQ0uYM`H>ZJ_Q;~*IqIP%Tv4;6S)j*-o*7`m7*7@&%G(pxs zaIU}yu6F4i@HyIgdG`ES#r-z$1-H3$r1!ZG&bI?n1zR`qwfFYi-M{f)sO;sJ^}<~V P00000NkvXXu0mjfw174{ delta 1772 zcmV=@Xh$S%+j#HDkzU6I#(5&2XGS_MGTA5}g9>=iM$fc9jH86vB~q|`Ov zAGs*P+DtzK1Ah>11@P*hJcq3pyDIU%hQQ6C-u-(JyB+#f%Jb8 zshUVt0ts?4&`tmmIz6#meU4b*D|{bxB}y~1@<5!Jcz*z(HoV{<>fM02!i+2^f}CVx ze1t|2kzn}I0+ zRXj1KI5f84S3KSS#^KSq%icS)=zb$EL{jgaGnMwX$usxd`0gGNv~%mhFP2NqrKnB< zsEF?w>wlm9-{O7jzx`i-I^DB&=tA#Zh%``j=^Skrc*jTG^CFk`Py{?{wH+EsDBXWnhH@mOKmF$OcFUWRaI2-F-YHw zYLcr(Y;OJvKvo|Fa;uz(5?U{s9_Q&V?TN{P$qPbob48R{kFk&x<^Xsm2~>qy50F@o zuD)7*_*ALc2+Kv!OJ-vLMCD5Q5iKil6^^6Rp9f@O8}ZJGF23(UptO zPk)xS6oUxQOB^aD1EdiZVY2Jz9J=@O%}u{QGJc_ZZK2deRSH=a2E@FxcsSp0tmo>rs8KA_J2 z)(cD(kvItpg|<@thm-ZneS;^K7ViDk*mj@<(n40RomKs;Nyw# zDnUf-{LiS@d?TP(0kE+v1jY>mur?{-^%FMxQyhTJPGoc^v=`KYh7mXJgs(`hU73 z3aimHRg9q-#f2VFtjgWr9^CZbMzi{ISM@^KSxFG^L@T4U550EVgD>Cy)rHR=JUO)Z zbCpuPF1Uswff#K>QL(oW#LdKdYaaXMwngIfP_;be)Jc|AQW4R=nr2j76-Ff!#-)xh zE_F1*Qcq$%dOJt|u*zgw+wngxudHA4 z@AYlPh7IFlTQe?qhjFQ+8J2rv>(kRQ_LD7Z4Sh*C$m2xraNT1Lv2H|Q0 zoWC+PoEnNjH~~NqH>|t5n|j6(hJM>F#Ta9+N;3gew4Uag9d|A#<3-N5=zsN!#T3(_ zUY+EmDMgTI`|SY z*E#kQfQHrmV$QWYYY<5ZiGQk=t(EttesuT9wjbQXi>DTUvl$f^ftNNeRnIB@2j`!8 z4!|YeA14Mo2`PoW+LV*zk5Vg*8%B?#dv_P$N`?b^OfFj?OiTO@F*&B zxpQipC%k+1yBog)qI~(q?IJ7%mtmy*LT%wm_TF)H!Onpd&dFwgnSU6-JAQBH*i(6) zDO^7UuSgu+FCq^iGbyE@3Ozdy?Dc}D-zOT~og1FwYVe42@_+~rrk0m609s#6GI|B3 zB_Xj%!%OHg3c3B>Wi$^o7ekeCGlS{Q5}AIV@xVMWYMhyBYD>~GZJQmu9DQDSy0&6a zdh!$wx&bu1T;z$Bz-3QNY@|i4n7-V!!Vu{85q(vawKJ~P0$Kq%3}Br6Lq*4d7{O+x zxuVF~z`60^i6rXl_TB_;Ky?xk0W~NkM2@DIa#V2_5t^5-=TJfQ#Qy<$K^t`Yra#*N O0000