From 8e469d340ea238349286f0f0929b2600ea52efa3 Mon Sep 17 00:00:00 2001 From: Thibaut Date: Sun, 19 Jan 2014 11:56:12 -0500 Subject: [PATCH] Add D3.js documentation --- assets/images/icons.png | Bin 13448 -> 14161 bytes assets/images/icons@2x.png | Bin 35249 -> 37247 bytes .../templates/pages/about_tmpl.coffee | 5 ++ .../templates/pages/news_tmpl.coffee | 5 +- assets/javascripts/views/pages/d3.coffee | 6 +++ assets/stylesheets/application.css.scss | 1 + assets/stylesheets/global/_icons.scss | 1 + assets/stylesheets/pages/_d3.scss | 6 +++ lib/docs/filters/d3/clean_html.rb | 42 +++++++++++++++++ lib/docs/filters/d3/entries.rb | 22 +++++++++ lib/docs/scrapers/d3.rb | 43 ++++++++++++++++++ public/icons/docs/d3/16.png | Bin 0 -> 756 bytes public/icons/docs/d3/16@2x.png | Bin 0 -> 2053 bytes public/icons/docs/d3/SOURCE | 1 + 14 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 assets/javascripts/views/pages/d3.coffee create mode 100644 assets/stylesheets/pages/_d3.scss create mode 100644 lib/docs/filters/d3/clean_html.rb create mode 100644 lib/docs/filters/d3/entries.rb create mode 100644 lib/docs/scrapers/d3.rb create mode 100644 public/icons/docs/d3/16.png create mode 100644 public/icons/docs/d3/16@2x.png create mode 100644 public/icons/docs/d3/SOURCE diff --git a/assets/images/icons.png b/assets/images/icons.png index 2b84306a494e7913fb543144e019be8c78e7a0d6..c58499ee9f34e8806fb4a0cdfdca7f6d090a6514 100644 GIT binary patch delta 4420 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 Te4=8s00000NkvXXu0mjfwwNR9 diff --git a/assets/images/icons@2x.png b/assets/images/icons@2x.png index 555fb5b4e7ed1a845d15a8b4a3baaf086cda047a..6e2407f5d2f483eeb2d1adb78762a7a364654c19 100644 GIT binary patch delta 16013 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�!ZR2MeJ z+X~>Tm)Kgr-#UMgtuMu$vu|@`x4tq;eY-Z^PgsMS8|LDM|1{Js7>jFj{BU#LFiELv zr-nFXB}sy&5?f*efrltks6YY1d<8C8pwJjjiWMj{5PV{SkXug<*R=KkmTZuG%p{dckhYRZoWuq z1~HjHOzKJyNnW%2ddx5Pa0@Fwt{eMS@U4 zT;5h2XN~pN%K!{@>xrlLf0OR>JG?Oz2iJ#yHLg+oCjd4*t4vQvvYR`$((aecUVV_> zqbJh3`y$n+2Z2Z;5R+WIkU6LiioYF;g0F@nZ`yw_?43IX{?<;dgy6LPiM~057<4aH zGn}&B&F?yZue;6ajc?mx0A}l}-%1dwBaN?$gSIA;YeO7yxwkbg`*uQ&uO&`7nKY*G z`CKABkKrp4c;tZ30mxQ36tRH;Nb=WI!DbB=h}2Y&ps7mGF%YRDCIAUOtfbuWh=~sB zEZTq0mjSqI#$3o+@q%SIotpW~d1gT!$R5^Pf*}W@7J$pms+p7sga>FzN zkvU=RgrUg)ayWL-an5ZM=(r}mV9MX-B>j1_J z)t)Bksw0*1vTQxR1Q6+|OPy~G!52tct}Q1yXr_$^)~3^C04DYwijw)u zaUyIB5`72bYT40Ohv4Si@P2JA%Gazx4OPuY0#-}s5JkOuF$n3pr_>2E`t(NL)M0fz>&w-HUt zcd)}^14FHz5z$p1){!rr*!emnUoJw$nDby8NGT-A>2wQ z;j+gJg=ld9rmbEMo`|<`$86n>+#i7ONE=|@UDSVnw~W50ebW1#d{Ny+15SVYr1eQO z4D6@z9>Bj2V7i`KUWTr^Bwkyci`Ak~Oy_p@8EH#O2%25`npENP#fbtn#7V<14`HNW z0x*~yP`14)gy0kjRFO|VUnmq{kAWsi4RvtXScqe$dZ;ir#9?ziY}Ql4LQS4zyQwCg zx^@~Q18}*u3s%rF+%lR6Tf($1loL z#5BVQ4Scbquv;!%SSYY;Vf+pE>A-h*&6CkQw4u~Ng}}&O8`d7 z03>Z92!ojGQJz+jbhsakh1@AKeU88rpYPB{e4&$3W1W?$_`HpA z<7T0=4{%2>#v1&VOVL8bFTM16lq1Agf)F3Z{XD&?>>P4^s6~U8oV}%di=9VhFS=vHx`7n z)uN>|^~Q7_oe5D>f1IqT!Nu{FIVw81a6XR<(cp1Gd^zz(O+_w5N0p1wQIo_{2v4G1 zFH@h7TtfkhjJ0sUR2M&x>s4ABqQ=SyKiiq%x2_#=*UJh8o%Da7q*>^>J_FE+TW;md z`CHm^>%IGOkAC?DkAC?Tk4aBh-$L}6D&~9am?ec>5?$ZBd{J_6$pVgYKQ7(7CztHt z$tBx(a0DNhYRBaDyV4!JxHvnHr)=EW8kXyM|Lg5-csWtHfxtV~Nc-#-s!k)!gb1TP zSxHHf#ph$IrUrk~Da58wz89}4k1g8Dh|yI;6uD-EPz}L)st6UTJPOfOz89jaay3k- zd@)2<=~SptsXRniu{2nym=|rRDoQn056$VI6ZnIR*^*ixo6khHnz}LoS5OFEZsme? zHf{*$?20AER#;5hWNeKXBU?lm+ajD4YHWiL6Kh0tu$O@7q87dN$dCq#$E8lL%AY+2QTe?%H5)^nz%)%780Y+_m38;E)3IApBACZA0DBnK7@{1`o&gTe53>nmmR`D1y8|6UE@8@iX@FJRxieyjJC z^jTGWz4wY;cYFF5{N}qX|6Y$Jd3U-k&b{ota9gg|!t9U!4r=NL>JO_QY;cKG@o<2! z_q+a&pvAQnX%s1dw1KpY^cATW$v|e@q^YD;3i5yQY1GG(mXg+~sHp5W&=*!YJK8^T zb#_F1Gt=9uDk`P)Y%$6HxiQ~`=DT#S>VS2n$^F;tZS1$Y1btTRM(-6x=()TAzDswa z$M-wXeQ_>)7UjTe{#JN?mj#b`8E0JQrvKNL+!_XJk8k)upKBOm2&o1eJbg4!XW%;y zUweO2R?qG}^{ZDbLt1JIa&mHzo|cC2&|rKsdlo$1-R>zVDHVBoxZMigv>rQl>_ExB zQsn05O24x$D+3i36*zMGJPx0^jH5r*;AGVm965FzF;U@gcXfG6V?^-ze1mre!U5~{ zP4B;UFGd6(#1=Y^IWz7EdifWk=dyhCSo(hqKJNwD@M7?ND?-<~>2RBqdWpw_+vnA~*tGY%Y}?+y%GP{BrIoq)U-)&FdP2RLt(hYHaQ-S1ODehVQw}uFjx26m zn6$qkDDQ-LTUiy#&R#~<`Exj5Q-`E|=fz(~6*rDsn=SsDzPBmwM8lplb&bD1YUFxXae75m&-5rF71c4_fcUlVkyU_XvmLxLgtG)9Gto`z^ z9u#()oNq}ky2;?1p9RlvGtqTkI^5@^!fkd6TxKP9<-Ni7ppVeHC44W1aDe_G-hZi8 zo13d%ur=?0!M1&3l})>wmo3|(#@c@j)s{x6>TLQe0hv+N#o~h>T#VHJo&O(BRaLco zPjL})Ph71hXe8~1uRzB!tI>Jf8g!!Ga?~mqe!N_gT5?KKQF~YHH8Y&Pvl3S0*1~o| zptQFbxeAt}1K|B-2+~VV;?ngy7_mGV9mlSL!{iOp=WbsFOAb}tZphuX736<{ReE}Q zZQptT`>o!a-8W!2j$XP0)@p7)V4;_suO)n2{|MjzCBb=S{MWoU+@227oy}nTJ0YyJ zvgkx`EgW)UZHgP0=UN{#Qdv?Y3S<_HUv;EbbO~9UCurWVN{UY{ryjQoO zQ>RSCiJD);<|9_X`SVTaIz4}wU>_;fz5<rsnOLceY-ez=}xE>yKpFMXa zvEKcQV5uCZY()E!0r)m5AGhy4gx}I6bRj47oEZYg$s5suKs<8!Uc;Jzm7uX#zV!h1 z4cL?2XJruvtS-h^apm|Va5t#vcnN$NaBB(QR|#;M5jXoyh25uv^tXThz~d?XT@Y5- z>hmvJn-8V%y0yxt{cl&gw8tfa>zs`_E_Qdr?VxpFjeGb&+FzeN9p_}vsb}9OV1FZJ z(Y=pO*|%Et#TORjOXkMxY3xL9#UOH-y7_mxk{EEutFGajh@G$;vxWi6p1o8INcP;E zAY8bm5Y;#C!fR$I15*enWnT zv62A2mz{y?q5VVE9+>C0{Xm3PYtnc1UP>{08{RWS_1LBt@%R&F^7!@ z7Z)YtHimT-7i-~7#e&lm0b@1s}Yoa5L-*npzSb!DM%Is7KLSk_2m#Ua9IJu zzQ>A@^H*=-qlNLXr(DpEfF7|jgFAG%97>9chuO#ApO-L}h$93&D#4%9g*f<;xgSf`*)wOWTdw20GJ>e$uF zrd1UE_z+D{l9)t<1aSzF5G78DNJJ(F5jlt?*srUKNiuWq|9@@dg_wNO4Sluv)#b4j=s@bTOy!xs$rc0>KXBhT48 zBmk+zCyYwxXbt7_fXZfXqP!`uTI_ZiLT~#W#@BL~s~zr;W(kB@?cFA$wQ6qhY=_Ef z+k$cj^rp%O_o=p3ym-C@UnYRd>e3caxk+kw8fqEkVown*?C3ztCbSx7@fJ2v(Gu+4 zZgYQVNLO)hfCojC3ZOcladB=|mR>u6l8Ws+lS-Q-&(nleVHA8aS*q#lA{a7;Pyrvq zIc04)sZXV_`bo3khJ6XtX42Qx0WEmRckvZbQIR|Y?yVE#jaYlG(U5fsNrS&WqeIXv zXMNmukIRl1ZTB-n+ZAyOl#e9k6YvS;6Yzh{3X}i@a1m5Gn+)YcR5F9;?z9Xlnbgn{ z__(yg><*hh2T*Rcq#Yl3aiDa7l+Ey=ZD#VvJv!0Dm?Nb7=_kc0;3qfI3@QlctAXiY zHDvY6fa)a!uy{at2oUZEfNKEYI-E+50+2~|nCHLamon)e4QD^KBHp8+SLr;@;ZPY{cgzmvwHv^aohsOTOBmZSs&C- z0Uu|5LixPRln?MJ0W6sb@IFLM#l(L;nW$*OdJEu_+pv8>o~!CrQ+M2CmL)S`NHZG> z1qjD+WGM*%WicdZ!I`XtgZon9tSL~uc~mri2IY+zDnX<{OU>@qfpQ1+rGlyN;XNFm zQPJG#c#g9)|A{tyo*~8Ox6pc7`BHGtlWvZ*7q1tLWAUNQY#0Ldv17+*o_~K#MSH|4 z-D?2w0>JwgAUTg)MPpY6Q~cGN5{O4HY9zH2&*>qX522DXzlo&Lp9ez;uhLiQcm_~v z!QZFn>&K29!LR+>?;rub4ujVLzO^!ZaJ*8`>}L`*%cesLn&r49jJmPuVEE?mHkgjt zJITXmdli75vjXN**{n!|>P>$~@A?4nO$2=J5fzTr{3kQtzfnPTPHWXGCfjq~c1xcX z!f?Q#1_%tq9y}guX-|o*n^OiL$_6l*tz-kjGhXL5RJQ&rdVDRJD#}WwUy_Z5$H#^_ zP*ypibT?&Jd>LOq3Z)gV!_bE}x8c{jg+Icl-}-N%Eyq&J-Nt`q;(~t}tacx)qv*s8 zTDJW-y#|1K$_{wEpBkZc5nsd64YzLTx$aOn|3irs8ka(jWBeq5&t1=>x&Id>wew*x zAUCpd$i~{bkbgAfZ=dt6Jv{-XfDew>pnOJg3zU!H#UMc9N$Nd?)}J z(1%JsOr&B~y-BDE0B?UBQNbA0NFC9;e|QGvQ`D1wuewO!4zpiZgO2tX#%`^7jo2D$j)Hpny?m z#UV0y;*k|F+}SS5zj0$5&H+F9cpe?RkgZ31Q~<~d7jrp_KHYy2Lv5ju?0`Mcs{4Nu zD7DzPU@{P~KrIc|x5xD}HteUXId}LTfOC@spwGrgavJk@+7z8!p$-XR_1jrTg68;d z7`_2j@Ew=iZZyMZ6t^&Z;eb!XEy0GYPXV8(fFc!s_##xV6!6Ka_b$L2O_Vq;IjZgxZr=APrdCTsvsQZutYn|UIW<5ehxzF<6(o=7=GH_5m49)Py{Sedp-uo zdqvD}088V}2BZbvxi*SQ*Z5H;TC4ys4Zz0Z`}+W}`Mtt$uNbuYYf#p_PHq{Rj&3vf z_XBnJ>hkDnb|E0ztcRMJm4az5*4pzPzvpy)Fh+9O~ zR||ZdW(DT={-1CA>h4TZW7Y$Fe+77B0p3W|aDX?2=+<9|a^K#f9cnvH0iOi`^5@17 z@+$UHHDG_oTpNUZiso#qX1Cdqa=YZ&4WCnF3#DrDBdZy!8mn72s~zUNOt@iujQOr5 zod8^btQtHsHDx$?7UW`OJqEMF=>tx%oJ&qgrLkY^t>l*3UBJW&hGO$E?dyH4h7y3B z7Y<&!gEI0Mj#p>T$UA1%x#zCxh+%ylr^gxs~kVakomdtb+rS_^CaIl8^unU z4UbyBpUSXS?c5$fTaKnwxW8vQ2eKkw$jD~^5xcDCtvQ|rrLDH_)ABImnME5Alfu_fGqxaJ*-CdO$6?mfLG{>Z@T>>$B-KN)>h&Y+WfA4{CgdFn zP^iLR51K4}?$l?0Lj6%H#n2pu!;JI`Ph`z`!m=#ZI#qlXOS>@PR zD7NqTb9TJTVO(zHmC(s6Srlp$PV{?HX46ssy7&_H^88JId7tR0>17WpO3cBhgt#71wf%txKoHruA!|8H!DoVL18LtnD0))h@{A2vuNoF zXz2$GEnNW25HhF*fOou5A}gy#8R?oV8o5%fW&hjvP2Wx|-p8QwbjqmhOwL zD4shApy`zG`H)GxQp65-yxej}0lX0aZz#YUh!U#z2CE)XR#&1-PXO3)h6K>iChsdC zv}hgdfTqYtoMJUCivL+@N>_#ZPF;#&G9VMPXU!0>UacdcImb1_MBxD ztMF{ca51br-wD-ZaB)uxSGI5IYiHb@80h38kJi2LN2rhD<;RCi_ngsGy1!rDhI^sG zv>5j#1su6dyh7q{P+ZC_icQXDgJPKfX4L?okHHa-T(OI=^bz5EiT{67*;q9?-qgV% z)ym51CdZ(^Ie>kA509%-K9Th;F*shFY90^J{A*V|5wEc7vC$YKtKKkHJz+EeAFEz3 zgX(294}ZjaJ{urZMgO1jZJ$IsCi zfq6yDjb<$xj|?i*(5Zj=`M4gAxYDQ%y0&lE=FzP?_w;Yf+otDer6=IyvwmZI_fT$8 z8BLlvk)}`ifXa%Cq;r`UF&hqCyxkDP%rpwHaA#Zn#}iiDdzVJl8$!p|X=>mqbh8;}zj-D-_HGBp3^YqZJt*)Qw#) z!^aS^Lh^j40GB`Kud`7R3d#VU0f=bx#wJ8SxIJ*&R*Fu_uV^{WkJ{pR*4qmMDDUn+ zXv(As<{rkPmuX_~bP$vNFu{_ca@a0!2pM0*50b~V4%QaFx5h{-ps#hJaaNy+rVq>0qj(UI~C3h8Xx zZQ2!+tWUt$IF?l-n-l*tER zQKMCLZFw#VZrF2C`26k*Lj$`n*t5IK$3eTj=I&|-)r&;D!UqUY%1{~Y^%~`Lzlz;? zR9Amg=c|2zgfcc&VMNUBa5% z1cx@Weaxp*Bt?`;1jvpY8k^*JF(Po5;lp)2---AJZP}I1n>l6%T)uw=Uhhb7^Tz#D zVksf)k2;KZz@^A$!*%(Z3Fa zIE0GB2Uh@}-ZJ=of;a-0aakgr$ z`p=i~Hd+0efPo@j9C*BRGfMl4<`yIfa`0kqT|E8(+z1$e1`uXeH>1my|`h(EH5g_-T|@@#*{b77e2 zd?$7}E~uN?PFJ_Yi5E+jQVj(_zb7JobX~S+!BgyT@Vnql07N*A2xqH4H9Mc$yw>U- ztEaffiw9u-s0a}%SF7Gz%6KIQ&R1Vf(kl7V0ARYCaJs)3gwF#$rBk+R2N1txH8XF| zJO`>}@Nmu3ux7TA46g65x6gknAo}C%kEWFzxtNKpaGjppu5iGe@!pT2p9WQ?rEBzm zY|tQ)6_ge5#RTxy@Kr`zX|;vQ_`Ej&)XD(*F@QQsbNAqTJU0jhe819SH4ANKJr(M9 zK2(ZPsub@L&v$C4#$M0ky*n~YsyBN5DOQtrM~~xKm7dc!0KkpXQ7nJ^cRr`U*!1$y zJt1sBRw(Al7Yo4tO`&=Z0H07jlo#L=q4I0h@k$P^$)6zSd~TOW{EK@Y5CT3vQLTCo zi`6Zxxm|x4iv8;5wqNXVwC$jJzDua#rB{PU{N~pIEGBh*&%*qvLGA7Y5bKK-~jycL7`y9(PiD z%gOlIMfDt(cChs*KFY;AAbhA*_20KdcX37SYwhk<(XoBoawj0irkCY+yS01~;QJTe WJ|`bGys5VU0000 result app.news = [ - [ 1390003200000, # January 18, 2013 + [ 1390089600000, # January 19, 2013 + """ New D3.js documentation """, + ], [ + 1390003200000, # January 18, 2013 """ DevDocs is now available as a Firefox web app (currently requires Aurora). """, ], [ 1389484800000, # January 12, 2013 diff --git a/assets/javascripts/views/pages/d3.coffee b/assets/javascripts/views/pages/d3.coffee new file mode 100644 index 00000000..f66891e2 --- /dev/null +++ b/assets/javascripts/views/pages/d3.coffee @@ -0,0 +1,6 @@ +#= require views/pages/base + +class app.views.D3Page extends app.views.BasePage + afterRender: -> + @highlightCode @findAll('.highlight > pre'), 'javascript' + return diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index 23711d0b..cba47101 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -29,6 +29,7 @@ @import 'pages/angular', 'pages/coffeescript', + 'pages/d3', 'pages/ember', 'pages/jquery', 'pages/git', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 897d5224..21bb45f9 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -45,3 +45,4 @@ ._icon-git:before { background-position: -1rem -6rem; } ._icon-redis:before { background-position: -2rem -6rem; } ._icon-postgresql:before { background-position: -3rem -6rem; } +._icon-d3:before { background-position: -4rem -6rem; } diff --git a/assets/stylesheets/pages/_d3.scss b/assets/stylesheets/pages/_d3.scss new file mode 100644 index 00000000..0d34d1d9 --- /dev/null +++ b/assets/stylesheets/pages/_d3.scss @@ -0,0 +1,6 @@ +._d3 { + > h2 { @extend %block-heading; } + > h3, > h4 { font-size: 1rem; } + > h6 { @extend %block-label, %label-blue; } + code { @extend %label; } +} diff --git a/lib/docs/filters/d3/clean_html.rb b/lib/docs/filters/d3/clean_html.rb new file mode 100644 index 00000000..61554ce1 --- /dev/null +++ b/lib/docs/filters/d3/clean_html.rb @@ -0,0 +1,42 @@ +module Docs + class D3 + class CleanHtmlFilter < Filter + def call + css('#gollum-footer', '.markdown-body > blockquote:first-child', '.anchor').remove + + # Replace #head with

+ css('#head > h1').each do |node| + node.parent.before(node).remove + node.content = 'D3.js' if root_page? + end + + # Move content to the root-level + css('#wiki-content').each do |node| + node.before(node.at_css('.markdown-body').children).remove + end + + # Remove links inside

+ css('h2 > a').each do |node| + node.before(node.children).remove + end + + # Make headings for function definitions and add "id" attributes + css('p > a:first-child').each do |node| + next unless node['name'] || node.content == '#' + parent = node.parent + parent.name = 'h6' + parent['id'] = (node['name'] || node['href'].sub(/\A.+#/, '')).sub('wiki-', '') + parent.css('a[name]').remove + node.remove + end + + # Remove code highlighting + css('.highlight > pre').each do |node| + node.content = node.content + end + + doc + end + end + end +end diff --git a/lib/docs/filters/d3/entries.rb b/lib/docs/filters/d3/entries.rb new file mode 100644 index 00000000..7b18891b --- /dev/null +++ b/lib/docs/filters/d3/entries.rb @@ -0,0 +1,22 @@ +module Docs + class D3 + class EntriesFilter < Docs::EntriesFilter + def get_name + at_css('h1').content + end + + def get_type + name + end + + def additional_entries + css('h6[id]').inject [] do |entries, node| + name = node.content + name.sub! %r{\(.*\z}, '' + entries << [name, node['id']] unless name == entries.last.try(:first) + entries + end + end + end + end +end diff --git a/lib/docs/scrapers/d3.rb b/lib/docs/scrapers/d3.rb new file mode 100644 index 00000000..81e6758e --- /dev/null +++ b/lib/docs/scrapers/d3.rb @@ -0,0 +1,43 @@ +module Docs + class D3 < UrlScraper + self.name = 'D3.js' + self.slug = 'd3' + self.type = 'd3' + self.version = '3.4.1' + self.base_url = 'https://github.com/mbostock/d3/wiki/' + self.root_path = 'API-Reference' + + html_filters.push 'd3/clean_html', 'd3/entries' + + options[:container] = '#wiki-wrapper' + + options[:only] = %w( + Selections + Transitions + Arrays + Math + Requests + Formatting + CSV + Localization + Colors + Namespaces + Internals) + + options[:only_patterns] = [ + /\-Scales\z/, + /\ASVG\-/, + /\ATime\-/, + /\-Layout\z/, + /\AGeo\-/, + /\-Geom\z/, + /\-Behavior\z/] + + options[:skip_patterns] = [/\//] + + options[:attribution] = <<-HTML + © 2014 Michael Bostock
+ Licensed under the BSD License. + HTML + end +end diff --git a/public/icons/docs/d3/16.png b/public/icons/docs/d3/16.png new file mode 100644 index 0000000000000000000000000000000000000000..33c4b79b7fa8563f925f7c0cb5512d8c7de5184b GIT binary patch literal 756 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 jfAVH{efjsPFIfKv+