From 7731a599e105d08cef955174ae20a03918d6ff7a Mon Sep 17 00:00:00 2001 From: Thibaut Courouble Date: Sun, 4 Feb 2018 11:57:57 -0500 Subject: [PATCH] Finish Babel scraper --- assets/images/docs-2.png | Bin 16287 -> 16852 bytes assets/images/docs-2@2x.png | Bin 39598 -> 41076 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 | 1 + assets/stylesheets/pages/_babel.scss | 10 --- lib/docs/filters/babel/clean_html.rb | 74 +++++------------- lib/docs/filters/babel/entries.rb | 29 ++++--- lib/docs/scrapers/babel.rb | 23 +++--- public/icons/docs/babel/16.png | Bin 0 -> 653 bytes public/icons/docs/babel/16@2x.png | Bin 0 -> 1560 bytes public/icons/docs/babel/SOURCE | 1 + 14 files changed, 54 insertions(+), 93 deletions(-) delete mode 100644 assets/stylesheets/pages/_babel.scss create mode 100644 public/icons/docs/babel/16.png create mode 100644 public/icons/docs/babel/16@2x.png create mode 100644 public/icons/docs/babel/SOURCE diff --git a/assets/images/docs-2.png b/assets/images/docs-2.png index 91de3f6babc807504e58e05cfc2247b414450ebc..9f642a48fec5855a500a1caaa0dd40cefd2c423b 100644 GIT binary patch delta 7102 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 diff --git a/assets/images/docs-2@2x.png b/assets/images/docs-2@2x.png index 457fdf3f5687fc411a0bf245fd1a448c71b137d9..72089323a517311b12e826dc977c00436deea977 100644 GIT binary patch delta 8628 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 delta 7153 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 and JSDoc" + "New documentations: Babel, Jekyll and JSDoc" ], [ "2017-11-26", "New documentations: Bluebird, ESLint and Homebrew" diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index 04da2985..be5a00a1 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -105,6 +105,11 @@ credits = [ '2010-2017 Caolan McMahon', 'MIT', 'https://raw.githubusercontent.com/caolan/async/master/LICENSE' + ], [ + 'Babel', + '2018 Sebastian McKenzie', + 'MIT', + 'https://raw.githubusercontent.com/babel/website/master/LICENSE' ], [ 'Backbone.js', '2010-2016 Jeremy Ashkenas, DocumentCloud', diff --git a/assets/stylesheets/application-dark.css.scss b/assets/stylesheets/application-dark.css.scss index d0abeb4e..c8dc1f8f 100644 --- a/assets/stylesheets/application-dark.css.scss +++ b/assets/stylesheets/application-dark.css.scss @@ -35,7 +35,6 @@ 'pages/angularjs', 'pages/apache', 'pages/async', - 'pages/babel', 'pages/bootstrap', 'pages/c', 'pages/cakephp', diff --git a/assets/stylesheets/application.css.scss b/assets/stylesheets/application.css.scss index a18e933d..26e0b885 100644 --- a/assets/stylesheets/application.css.scss +++ b/assets/stylesheets/application.css.scss @@ -35,7 +35,6 @@ 'pages/angularjs', 'pages/apache', 'pages/async', - 'pages/babel', 'pages/bootstrap', 'pages/c', 'pages/cakephp', diff --git a/assets/stylesheets/global/_icons.scss b/assets/stylesheets/global/_icons.scss index 427f0eea..a4ae5bf1 100644 --- a/assets/stylesheets/global/_icons.scss +++ b/assets/stylesheets/global/_icons.scss @@ -169,3 +169,4 @@ ._icon-eslint:before { background-position: -9rem -2rem; @extend %doc-icon-2; } ._icon-homebrew:before { background-position: 0 -3rem; @extend %doc-icon-2; } ._icon-jekyll:before { background-position: -1rem -3rem; @extend %doc-icon-2; } +._icon-babel:before { background-position: -2rem -3rem; @extend %doc-icon-2; } diff --git a/assets/stylesheets/pages/_babel.scss b/assets/stylesheets/pages/_babel.scss deleted file mode 100644 index 3980bf47..00000000 --- a/assets/stylesheets/pages/_babel.scss +++ /dev/null @@ -1,10 +0,0 @@ -._babel { - @extend %simple; - ._note { - h1, h2, h3, h4, h5, h6 { - &:first-child { - margin: 0.5em 0; - } - } - } -} diff --git a/lib/docs/filters/babel/clean_html.rb b/lib/docs/filters/babel/clean_html.rb index ff46f386..4ae08cc5 100644 --- a/lib/docs/filters/babel/clean_html.rb +++ b/lib/docs/filters/babel/clean_html.rb @@ -2,72 +2,34 @@ module Docs class Babel class CleanHtmlFilter < Filter def call - css('.btn-clipboard').remove - - css('div.highlighter-rouge').each do |node| - pre = node.at_css('pre') - - # copy over the highlighting metadata - match = /language-(\w+)/.match(node['class']) - if match - lang = match[1] - if lang == 'sh' - lang = 'bash' - end - pre['class'] = nil - pre['data-language'] = lang - end - - # Remove the server-rendered syntax highlighting - code = pre.at_css('code') - code.content = code.text - - # Remove the div.highlighter-rouge and div.highlight wrapping the
-          node.add_next_sibling pre
-          node.remove
+        if root_page?
+          doc.inner_html = '

Babel

' + return doc end + header = at_css('.docs-header .col-md-12') + @doc = at_css('.docs-content') + doc.prepend_child(header) - css('blockquote').each do |node| - node.name = 'div' - node['class'] = '_note' - end + css('.btn-clipboard', '.package-links').remove - css((1..6).map { |n| "h#{n}" }).each do |header| - return unless header.at_css('a') - header.content = header.at_css('a').content + css('.col-md-12', 'h1 a', 'h2 a', 'h3 a', 'h4 a', 'h5 a', 'h5 a').each do |node| + node.before(node.children).remove end + css('div.highlighter-rouge').each do |node| + pre = node.at_css('pre') - header = doc # .docs-content - .parent # .row - .parent # .container - .previous_element # .docs_header + lang = node['class'][/language-(\w+)/, 1] + lang = 'bash' if lang == 'sh' + pre['data-language'] = lang - toc = doc # .docs-content - .parent # .row - .at_css('.sidebar') - toc['class'] = '_toc' - toc.css('a').each do |a| - a['class'] = '_toc-link' - a.parent.remove if a.content == 'Community Discussion' + pre.remove_attribute('class') + pre.content = pre.content + node.replace(pre) end - toc.css('ul').attr 'class', '_toc-list' - - h1 = header.at_css('h1') - h1.content = h1.content - .titleize - .sub(/\bEnv\b/, 'env') - .sub(/\.[A-Z]/) { |s| s.downcase } - .sub(/\.babelrc/i, '.babelrc') - .sub('Common Js', 'CommonJS') - .sub('J Script', 'JScript') - .sub(/regexp/i, 'RegExp') - .sub(/api|Es(\d+)|cli|jsx?|[au]md/i) { |s| s.upcase } - doc.children.before toc - doc.children.before header.at_css 'p' - doc.children.before h1 + css('code').remove_attr('class') doc end diff --git a/lib/docs/filters/babel/entries.rb b/lib/docs/filters/babel/entries.rb index 98180b34..2340e0ae 100644 --- a/lib/docs/filters/babel/entries.rb +++ b/lib/docs/filters/babel/entries.rb @@ -2,29 +2,38 @@ module Docs class Babel class EntriesFilter < Docs::EntriesFilter def get_name - at_css('h1').content.sub /^(minify|syntax)|(transform|preset)$/i, '' + at_css('h1').content end def get_type - if subpath.start_with? 'plugins/preset' + if subpath.start_with?('plugins/preset') 'Presets' - elsif subpath.start_with? 'plugins/transform' + elsif subpath.start_with?('plugins/transform') 'Transform Plugins' - elsif subpath.start_with? 'plugins/minify' + elsif subpath.start_with?('plugins/minify') 'Minification' - elsif subpath.start_with? 'plugins/syntax' + elsif subpath.start_with?('plugins/syntax') 'Syntax Plugins' - elsif subpath.start_with? 'plugins' + elsif subpath.start_with?('plugins') 'Plugins' - elsif subpath.start_with? 'usage/' + elsif subpath.start_with?('usage/') 'Usage' + elsif subpath.start_with?('core-packages/') + 'Core Packages' else - 'Docs' + 'Miscellaneous' end end - def path - super + def additional_entries + return [] unless slug.include?('api') + + css('h2').each_with_object [] do |node, entries| + name = node.content.strip + next unless name.start_with?('babel.') + name.sub! %r{\(.*}, '()' + entries << [name, node['id']] + end end end end diff --git a/lib/docs/scrapers/babel.rb b/lib/docs/scrapers/babel.rb index 39495dcf..c9e40212 100644 --- a/lib/docs/scrapers/babel.rb +++ b/lib/docs/scrapers/babel.rb @@ -1,10 +1,9 @@ module Docs class Babel < UrlScraper - self.type = 'babel' + self.type = 'simple' self.base_url = 'http://babeljs.io/docs/' - self.root_path = '/plugins/' - self.release = '6.26.0' - self.initial_paths = %w[faq tour usage/babel-register core-packages editors usage/caveats] + self.release = '6.26.1' + self.initial_paths = %w(core-packages/) self.links = { home: 'https://babeljs.io/', code: 'https://github.com/babel/babel' @@ -13,19 +12,15 @@ module Docs html_filters.push 'babel/clean_html', 'babel/entries' options[:trailing_slash] = true - options[:container] = '.docs-content' - options[:skip] = %w{setup/ community/videos/} - options[:fix_urls] = ->(url) do - return url unless url.start_with? self.base_url - url.sub %r{/(index\.\w+)?$}, '' - end + options[:skip] = %w{setup/ editors/ community/videos/} options[:attribution] = <<-HTML © 2018 Sebastian McKenzie
- Licensed under the - - MIT License - + Licensed under the MIT License. HTML + + stub '' do + '
' + end end end diff --git a/public/icons/docs/babel/16.png b/public/icons/docs/babel/16.png new file mode 100644 index 0000000000000000000000000000000000000000..f74a8612be121807a3535b3dc19ffd90ce6dccaa GIT binary patch literal 653 zcmV;80&@L{P))E zHxWq2dwBq(z5@)Mo4GAyN0$lP=QLtJN`4{bg+DZ|f^V9#H&;bZf83L`tKB(Y<7G2o zJ99s)Z4Ltlem|0zubdfsWZ~qP)kiia?=-wnWT(ATemlHACA^yR@29fRkGCZ2PHba- zIkSU#xAZpxj%;LJfvV=TKK-2{$*xC!{(UUV?b|(oSuMb_>G1=G^$VFSWO+kFZ13ME za@VkaVSQ+w&4@*LEclh89~!W4P0~Fm@~WwWCNwD1YEnvmBN>{-Tp6}4$`!o$SG)|@(rSfNGc(&c}-EB@dzW6$9r?XV*7<&MNSb8IxbPUmu?I@o2x zKhXj7&*jwJ09kU~x!7A-D zS?2Y_T*s`j(FekOo5$4MyA|&Zhh%$sQIzxayuf_r0LT7s9TiGve4T_7fYO|JHNQP! z&UbdJ(e7;vb-%WkD;-UXlI*j$5cCuk<(6O|225?x=IN?do}CaPQP0iIAPy8_Mpr{1 n+x};a50kW0Q{xq3AQ1on-AfQxu4r)A00000NkvXXu0mjfNaQ@F literal 0 HcmV?d00001 diff --git a/public/icons/docs/babel/16@2x.png b/public/icons/docs/babel/16@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c219d955579040c2e8332ebd431c789ec2e7d5f0 GIT binary patch literal 1560 zcmV+z2Iu*SP)Ccn-UQx8gw8-g!Z<8_&^YJ&_eGm{5$_`>n3rV&}PX_a?;!X{{KDaJCE-_ zy#KwR>UcpPt@LAQBAua$<*b_6#Hy)x8Jb$gYSSpxp6-PZ?**PM1=U9i4Jsl6jI1=M z$m0ezp*E;VJt(p$Lz9DDbqd|(lW{d=MKL*=sw6KsYCT#bO}xa?R0$Zl3p!vnhFA?{ z{v}br%H)K;kw8~|n27d$DC@pjIHW!8{EEST|oDmY~R+rw*#7g`7Tb^U8g|0M#9)xqred-XlB1ADE-`?^3dV!qk#|6Y3Yv@~VuFa`{>$w4aAjqT6K1 z<9cQD?>Cj`UbP%$O&fCt)?J34XVl7gFkEM;lZUkmv~13}OYq9|xg2;g!#yfGVpOg` zz>9;wcA#7@>s7>BeWMBe(LE82SS(mH^epBCXwL>P&ZVjAh5~I`?XUN66}&av`m=kg z9$J*{_piw>b=N65MDt(qtbk?7Q~W@auY+N&CG2fiQqZc!J`Y_)cB^5FkY|nP8&%m}$)jGy4sLrds6UeuUk{f$?TwT8W7XHjigLI-xB z3uyS*-pEJuvm}&N4!{-rjs<<$k?4W-EBv}HZy_=Q(-vn(%rMMr1 z<);eD!UF~kwH?s+V#8R!*%dJ;3v~JtUXLEJ0|pH-8$Q;D(SMvLeFW$;hRz9$ii~5` z7OV2jRtH`Je- zgqAPze(2#Q%)^(Cb*-l%X9DTyw3m`m!KUCRxksv`(MBjVqlT;mR%G#vP$pp2xj&|=)bvDpcDQ3N!fNC-!uoAX}SzTcNB=Pl literal 0 HcmV?d00001 diff --git a/public/icons/docs/babel/SOURCE b/public/icons/docs/babel/SOURCE new file mode 100644 index 00000000..30018a75 --- /dev/null +++ b/public/icons/docs/babel/SOURCE @@ -0,0 +1 @@ +https://github.com/babel/website/tree/master/website/static/img \ No newline at end of file