From eea35dd09ebf0c6baf8f772a773a4ff425b6ffcb Mon Sep 17 00:00:00 2001 From: kikyous Date: Fri, 3 Jul 2015 15:54:12 +0800 Subject: [PATCH] Add documentations for vue.js --- assets/javascripts/views/pages/vue.coffee | 14 ++++++++++++++ assets/stylesheets/pages/_base.scss | 2 +- lib/docs/filters/vue/clean_html.rb | 14 ++++++++++++++ lib/docs/filters/vue/entries.rb | 18 ++++++++++++++++++ lib/docs/scrapers/vue.rb | 19 +++++++++++++++++++ public/icons/docs/vue/16.png | Bin 0 -> 1764 bytes public/icons/docs/vue/16@2x.png | Bin 0 -> 2834 bytes public/icons/docs/vue/SOURCE | 1 + 8 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 assets/javascripts/views/pages/vue.coffee create mode 100644 lib/docs/filters/vue/clean_html.rb create mode 100644 lib/docs/filters/vue/entries.rb create mode 100644 lib/docs/scrapers/vue.rb create mode 100644 public/icons/docs/vue/16.png create mode 100644 public/icons/docs/vue/16@2x.png create mode 100644 public/icons/docs/vue/SOURCE diff --git a/assets/javascripts/views/pages/vue.coffee b/assets/javascripts/views/pages/vue.coffee new file mode 100644 index 00000000..cde197db --- /dev/null +++ b/assets/javascripts/views/pages/vue.coffee @@ -0,0 +1,14 @@ +#= require views/pages/base + +class app.views.VuePage extends app.views.BasePage + afterRender: -> + for el in @findAllByTag('pre') + lang = if el.classList.contains('html') or el.textContent[0] is '<' + 'markup' + else if el.classList.contains('css') + 'css' + else + 'javascript' + el.setAttribute('class', '') + @highlightCode el, lang + return diff --git a/assets/stylesheets/pages/_base.scss b/assets/stylesheets/pages/_base.scss index f90e4dcb..c5f61cd4 100644 --- a/assets/stylesheets/pages/_base.scss +++ b/assets/stylesheets/pages/_base.scss @@ -25,7 +25,7 @@ ._mocha, ._mongoose, ._sinon, +._vue, ._webpack { @extend %simple; } - diff --git a/lib/docs/filters/vue/clean_html.rb b/lib/docs/filters/vue/clean_html.rb new file mode 100644 index 00000000..357d62ce --- /dev/null +++ b/lib/docs/filters/vue/clean_html.rb @@ -0,0 +1,14 @@ +module Docs + class Vue + class CleanHtmlFilter < Filter + def call + # Remove code highlighting + css('figure').each do |node| + node.name = 'pre' + node.content = node.at_css('td.code pre').css('.line').map(&:content).join("\n") + end + css('.content') + end + end + end +end diff --git a/lib/docs/filters/vue/entries.rb b/lib/docs/filters/vue/entries.rb new file mode 100644 index 00000000..e9bee8ad --- /dev/null +++ b/lib/docs/filters/vue/entries.rb @@ -0,0 +1,18 @@ +module Docs + class Vue + class EntriesFilter < Docs::EntriesFilter + def additional_entries + type = nil + + doc.children.each_with_object [] do |node, entries| + if node.name == 'h1' + type = node.content.strip + elsif node.name == 'h3' + name = node.content.strip + entries << [name, node['id'], type] + end + end + end + end + end +end diff --git a/lib/docs/scrapers/vue.rb b/lib/docs/scrapers/vue.rb new file mode 100644 index 00000000..8e73a5dd --- /dev/null +++ b/lib/docs/scrapers/vue.rb @@ -0,0 +1,19 @@ +module Docs + class Vue < UrlScraper + self.name = 'Vue.js' + self.slug = 'vue' + self.type = 'vue' + self.version = '0.12.5' + self.base_url = 'http://vuejs.org/api/' + + + html_filters.push 'vue/clean_html', 'vue/entries' + options[:follow_links] = ->(filter) { filter.root_page? } + + + options[:attribution] = <<-HTML + © 2014–2015 Evan You, Vue.js contributors
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/vue/16.png b/public/icons/docs/vue/16.png new file mode 100644 index 0000000000000000000000000000000000000000..82c414196a3ae0834e6b948bbf6020131520c428 GIT binary patch literal 1764 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&Z81_llpi<;HsXMd|v6mX?IHV#HzD6q_QAYKPa_0zqBYh6{uVpn?b;U!|woWno2U$a99qK0lOO>CO|LS04?$L zwQ@-<$}CGwaVyHt1qVz)Vo`A_$dR^6Fjpe$0%-($(<(EsxFj(zIn~p}4rr2IW@d_& znW>qhp^>?{xtXPrp`oj>rJ;qTg^Q(ulbeOJtBJXpjXs7}l<VF!$fm zwM&0JT6N=(iN&nbrhi*H7fWS&c*}iywDQvx&zYOz8JUjU=Gr#@8bi3Li_ssk#d8-r z&*007>D*hz?{xer&jvou1&mYVc|P*{YsvG+6;xEly zF4hPhDA@U9~2$E_;M zs>gfXYQsxzq)pISq~arU)x$Z;D0mCsg0nk2|9T$me02L&`*&7JFRw#Kwq|p@mpI$F z>*-4E^i{^QCK+_j-YVOxd+AS$nw@QY%#xgUXFum&opmRE{)7q7QhUyx`_%SeR-~rl oL!Y$={~r(1_+z<8_J8tU*347tY5y6I-vCuTp00i_>zopr0IH*bBme*a literal 0 HcmV?d00001 diff --git a/public/icons/docs/vue/16@2x.png b/public/icons/docs/vue/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4307b9d36a67984217f311ab82427364c7c67496 GIT binary patch literal 2834 zcmai02{=^i8$XJO7R}g~W|}OiW~P~nnK3iS*kdHJ{1syire-r|WXw%MNQ($bTy>>v zC3-9^qAWv_C54g-l~kfzmQuGnBbA=&f6w!r<@>(h^1ko+-t(MzXD6G5idu>Q04%h# zrMO7$aOtTqPjUrCqIZ&;4CrFB0VrzG8Ila<^K3mq08oNTPZ{8NrUn4WLYS@|0uRTH z1Ui?EqWN?E7$_l|CqV-MQAm(HvKayzT*zi|K!T8jm_`sJ&(di$0zM59>>wdL9G&5o zTs{N79<>g&20>PY!{J1}e*nRSVm(8bj7W$efq+LqqeDYOQK4&5Tz()LgU931Yp`f6 z7AZj>!7z@1CPZ?;QERUozLV6m|PBAs!Q|Zh6qRqgw*KUF%u`7=jiy&iUZE% zCCLyir18)g)EYFKjs6uA6u2A1huM3OR5V&dpXpfLE%oeY0#K9@aR7#@ueGNeJ05MQI5&5{zQ(b`|{qu*5S9N7QZ*0(fv-HW%^~!?zdIK|Cj76 z>W{JnOFn}p;PPF$To&0v+H`Q|Ag+K5261_COH23)M;e{Uk&ca~Q~v=!OG>&e2vj~( zQfivCF~}Gq`lq=WJP|GJnps`+rA4P_B|S=3lsJ9ucd{alW2p%M^V01o7Oo!iuext# zxmu}^!HAs|5zZ^z?3AGv&}9}W=5wrB*K_0`VI|>-@_KrEM_0-q%!-V!+b$pmWrv&B zX3$OumFsM;Xd&YF%R=tR3ztBZWphe^ABIQxwUQ~RJ@b>2FV z^&RSk^i5f4aY{&=GFkHddS~zMo<qN)*3A3_A~&3k6QJL|#izYgwF)rQhj?Kf!j-d^c#>VRca z;eEkJJXe+cO=`U_R33Mj>Kv(lQ8pGhSFsrPyen63D)ysMn;!K={k<)uMT7c@7jG|l zrP`m+yo?Z9dxL`%-@A5H!*3Pwwf2LSIJc1w!*KccT)F1%^p_usvrH@Nskv&$U2WAw3l>5*2kUUOx;zY8Qe}^9e~M6Ahu$b0GQ+F?=CX6H^hZR~3Kp zww|TPuXHoZefdYH#9`Cdjxzv4U(-cYZ1H+%r!!A-zbUo^3Lew9a zu(S{LP_Irnwk3KN#yKpxpnPq9rUBa%*HljFqbK`nt%`wTRvWAOEY)hgUw!ZnTbFso zC1i|{M~xHZ3C~3IM!Lrbm(_^)W^kTa=BpbV*VRfGy|q#1pT!X3UA^lCn)`=NFYnGi zRy^)Ccr5ym>|1SBOr3!a z%+>7r0+G4!qn>OtJnSE`|gdt28Xs8*TUe-vcPrxPBkmj;(#!>z_$SgCCo z6IaV_7UBSnV%rNBvB6&9x@k>@QQ`%|$27;Q@>0-4sUYM~xzibx5m7zLAl8GQSXe%~ zovvX5XnAidZ9G?B;Cp!KYPBRyj=}w8cKrW1+fK>eoLq;$x3#QjICG&>rC(CFSCLnP zYFG`x@9hS7(n@y@2U72d+qR}Ik4Q;XIYR9}1FuM!Q3>O0DoiMGeSC8OLhA(4o z(1zLs`;LQCPGSBMRGqRzLem4`qf?D<0`lp@hjlWBb44v5#`4of`ytDq%S^@BC$n;0 zp9I#lsWb&nnNCz^KDQ}(J%NKI2krrIp-4*m<}3Y><1#Haog*v$T%bG1vlu>uWtwJL zBp=S73uGbhgnYdCsHX+T23)3d$ck33w8X&MHVX#@