From 57232ce130a64eceded02b89fb38e64523e4db3a Mon Sep 17 00:00:00 2001 From: Nicolas Ettlin Date: Wed, 17 Oct 2018 21:21:21 +0200 Subject: [PATCH] Add Vuex reference --- .../templates/pages/about_tmpl.coffee | 5 ++ lib/docs/filters/vuex/clean_html.rb | 14 ++++ lib/docs/filters/vuex/entries.rb | 68 ++++++++++++++++++ lib/docs/scrapers/vuex.rb | 26 +++++++ public/icons/docs/vuex/16.png | Bin 0 -> 534 bytes public/icons/docs/vuex/16@2x.png | Bin 0 -> 1244 bytes public/icons/docs/vuex/SOURCE | 1 + 7 files changed, 114 insertions(+) create mode 100644 lib/docs/filters/vuex/clean_html.rb create mode 100644 lib/docs/filters/vuex/entries.rb create mode 100644 lib/docs/scrapers/vuex.rb create mode 100644 public/icons/docs/vuex/16.png create mode 100644 public/icons/docs/vuex/16@2x.png create mode 100644 public/icons/docs/vuex/SOURCE diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index fef9a024..72fb74cd 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -680,6 +680,11 @@ credits = [ '2013-2018 Evan You, Vue.js contributors', 'MIT', 'https://raw.githubusercontent.com/vuejs/vue/master/LICENSE' + ], [ + 'Vuex', + '2015-2018 Evan You, Vue.js contributors', + 'MIT', + 'https://raw.githubusercontent.com/vuejs/vuex/master/LICENSE' ], [ 'Vulkan', '2014-2017 Khronos Group Inc.
Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.', diff --git a/lib/docs/filters/vuex/clean_html.rb b/lib/docs/filters/vuex/clean_html.rb new file mode 100644 index 00000000..f62870cc --- /dev/null +++ b/lib/docs/filters/vuex/clean_html.rb @@ -0,0 +1,14 @@ +module Docs + class Vuex + class CleanHtmlFilter < Filter + def call + @doc = at_css('.content') + + # Remove unneeded elements + css('.header-anchor').remove + + doc + end + end + end +end \ No newline at end of file diff --git a/lib/docs/filters/vuex/entries.rb b/lib/docs/filters/vuex/entries.rb new file mode 100644 index 00000000..72c8486e --- /dev/null +++ b/lib/docs/filters/vuex/entries.rb @@ -0,0 +1,68 @@ +module Docs + class Vuex + class EntriesFilter < Docs::EntriesFilter + def get_name + name = at_css('h1').content + + name.remove! '# ' + + # Add index on guides + unless subpath.start_with?('api') + sidebarLink = at_css('.sidebar-link.active') + allLinks = css('.sidebar-link:not([href="/"]):not([href="../index"])') + + index = allLinks.index(sidebarLink) + + name.prepend "#{index + 1}. " if index + end + + name + end + + def get_type + 'Guide' + end + + def include_default_entry? + name != 'API Reference' + end + + def additional_entries + return [] unless subpath.start_with?('api') + + entries = [ + ['Component Binding Helpers', 'component-binding-helpers', 'API Reference'], + ['Store', 'vuex-store', 'API Reference'], + ] + + css('h3').each do |node| + entryName = node.content.strip + + # Get the previous h2 title + title = node + title = title.previous_element until title.name == 'h2' + title = title.content.strip + title.remove! '# ' + + entryName.remove! '# ' + + unless entryName.start_with?('router.') + if title == "Vuex.Store Constructor Options" + entryName = "StoreOptions.#{entryName}" + elsif title == "Vuex.Store Instance Properties" + entryName = "Vuex.Store.#{entryName}" + elsif title == "Vuex.Store Instance Methods" + entryName = "Vuex.Store.#{entryName}()" + elsif title == "Component Binding Helpers" + entryName = "#{entryName}()" + end + end + + entries << [entryName, node['id'], 'API Reference'] + end + + entries + end + end + end +end \ No newline at end of file diff --git a/lib/docs/scrapers/vuex.rb b/lib/docs/scrapers/vuex.rb new file mode 100644 index 00000000..774e989f --- /dev/null +++ b/lib/docs/scrapers/vuex.rb @@ -0,0 +1,26 @@ +module Docs + class Vuex < UrlScraper + self.name = 'Vuex' + self.type = 'simple' + + self.links = { + home: 'https://vuex.vuejs.org', + code: 'https://github.com/vuejs/vuex' + } + + html_filters.push 'vuex/entries', 'vuex/clean_html' + + self.release = '3.0.1' + self.base_url = 'https://vuex.vuejs.org/' + + options[:skip_patterns] = [ + # Other languages + /^(zh|ja|ru|kr|fr|ptbr)\//, + ] + + options[:attribution] = <<-HTML + © 2015–2018 Evan You, Vue.js contributors
+ Licensed under the MIT License. + HTML + end +end diff --git a/public/icons/docs/vuex/16.png b/public/icons/docs/vuex/16.png new file mode 100644 index 0000000000000000000000000000000000000000..153c58cdefe476e6738e7123d9c35a56d482a1ef GIT binary patch literal 534 zcmV+x0_pvUP)*H1M-xUw)lk~@0;(RckjKZ%G3U_T6BNH-SSH(m0NOKtx~PF zGNB4U!y`kM4qc_=?qhEw_@YPQ`^wt2kCXPL4|aX&vpv^pQ3P-_JTheI&{Z>W;8b7r zrMlf09d+e&V_BxpUlw~IFVx#d88{jq8M1WfD&QsE2eaD)(Jy=7orl-QR=M$`e4#B< z^UaWfqv4SuOGg3V#Ni2Vqw`H~_AtiND_1hB(vYe8(wKpx;b}5)=PMlr@&`H0n%`%2 z_VqpSHp8E1p4`YRcQLc)n!>=*yiqSDL-tQsxWp+M!i${F;o3K6z^HE!@$w-Oty%>kClJv&bc>h{39s?M>Cn-;ER8d zwHEouy`=Lgzqc@OG?Ovd>lAUY%&RkSP!N>M_w{Ifz&K=Wd>0{;Yv*xpw2ZdX@IH6y{x445yCHs4yy>o2 zn*(2*Y+Bi3Gd*5vS|d|8t!FXz_x8az;8U3+zD!^O^;58*#0710VmvO zpoJ#dJ#ORFNdDS6J$(6NJ$&g*_%Q`gK zg4h}f{0;)?u~N-!8!pBeIclf{0~QXr;Dj3uw9qu0=Pr4VOY$#wrNSh(CDsDa&Z@8b z=HJq(Y*AZ>OUinFS_%1fW_(tsCuX0E@WhOfqlQ{AVBvrZPPjz_@juZF_wQ0U*gx5m z_j8-)Bn{6+;VWmu3DkF1VZ~SWlBY5=b1G#|Dr+pnDV$KTYcgULz6#U)3L0vihBAs3u(z4DCF zYGWoLpwIF@oCowz*u6Uq`OOE)%1v<^qK3qY86!tcPzxr&3I|+p?kbKIYT>0abg}ZN z0Dg1VssQgsr-G*H_udX0GCYSaj-|P#v+ult z6PpW%8fw9SHC+3(hNgWg}uiL&k)IF>(@LO<+5;Lzu*mnE6TK%8mY6Ye@!GCTV6fpoCPII>tE_~77nhhx z{7$Y*6G(1_-SFn4&o`Wyu`Voq`}YKYDCEh19$G)Gabm_yP4~>a(fE9Ok*>#yW4W$d z^w*7sye^l{_1Kf+-8a*aOAAlqoituY*L1u1f1gCB;{O6E4`2-|#LHj+0000