diff --git a/assets/javascripts/templates/pages/about_tmpl.coffee b/assets/javascripts/templates/pages/about_tmpl.coffee index b9d666a8..6bd4b5f5 100644 --- a/assets/javascripts/templates/pages/about_tmpl.coffee +++ b/assets/javascripts/templates/pages/about_tmpl.coffee @@ -561,7 +561,7 @@ credits = [ 'http://tcl.tk/software/tcltk/license.html' ], [ 'TensorFlow', - '2015 The TensorFlow Authors', + '2017 The TensorFlow Authors', 'CC BY', 'https://creativecommons.org/licenses/by/3.0/' ], [ diff --git a/assets/stylesheets/pages/_tensorflow.scss b/assets/stylesheets/pages/_tensorflow.scss index bd755174..ebd5baef 100644 --- a/assets/stylesheets/pages/_tensorflow.scss +++ b/assets/stylesheets/pages/_tensorflow.scss @@ -2,5 +2,6 @@ @extend %simple; h4 { @extend %block-label; } + h3 + h3 { margin-top: .25rem; } > .toc ul ul { margin: .25rem 0; } } diff --git a/lib/docs/filters/tensorflow/clean_html.rb b/lib/docs/filters/tensorflow/clean_html.rb index cd798220..9f12ec5c 100644 --- a/lib/docs/filters/tensorflow/clean_html.rb +++ b/lib/docs/filters/tensorflow/clean_html.rb @@ -21,6 +21,10 @@ module Docs node.parent.before(node).remove end + css('aside.note').each do |node| + node.name = 'blockquote' + end + css('pre').each do |node| node.content = node.content.strip_heredoc diff --git a/lib/docs/filters/tensorflow/entries.rb b/lib/docs/filters/tensorflow/entries.rb index 53d28e5b..4e2757eb 100644 --- a/lib/docs/filters/tensorflow/entries.rb +++ b/lib/docs/filters/tensorflow/entries.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Docs class Tensorflow class EntriesFilter < Docs::EntriesFilter @@ -5,58 +7,37 @@ module Docs name = at_css('h1').content.strip name.remove! 'class ' name.remove! 'struct ' + name.remove! 'module: ' + name.remove! %r{ \(.+\)} + name.sub! %r{(? 'Get Started', + 'programmers_guide' => 'Guide', + 'tutorials' => 'Tutorials', + 'performance' => 'Performance', + 'deploy' => 'Deploy', + 'extend' => 'Extend' + } - if node = at_css('.devsite-nav-item.devsite-nav-active') - node = node.previous_element until !node || node['class'].include?('devsite-nav-item-heading') - type << ": #{node.content}" if node - end + def get_type + return 'Guides' if base_url.path.start_with?('/api_guides') - type - elsif version == 'C++' - name.remove 'tensorflow::' + if version == 'Guide' + TYPE_BY_DIR[subpath.split('/').first] else node = at_css('.devsite-nav-item.devsite-nav-active') node = node.ancestors('.devsite-nav-item').first.at_css('.devsite-nav-title') type = node.content type.remove! %r{\.\z} - type.prepend 'Contrib: ' if type.sub!(' (contrib)', '') + type = 'tf.contrib' if type.start_with?('tf.contrib') type end end - - def additional_entries - return [] if version == 'Guide' - - if version == 'C++' - names = Set.new - css('table.constructors td:first-child code a:first-child', - 'table.methods td:first-child code a:first-child', - 'table.properties td:first-child code a:first-child').each_with_object [] do |node, entries| - name = node.content - name.prepend "#{self.name}::" - name << '()' unless node.ancestors('.properties').present? - next unless names.add?(name) - id = node['href'].remove('#') - entries << [name, id] - end - else - css('h2 code', 'h3 code', 'h4 code', 'h5 code').each_with_object [] do |node, entries| - name = node.content - name.sub! %r{\(.*}, '()' - next if name.include?(' || ') - name = name.split(' ').last - entries << [name, node.parent['id']] - end - end - end end end end diff --git a/lib/docs/scrapers/tensorflow.rb b/lib/docs/scrapers/tensorflow.rb index bd9e913d..e0a27d19 100644 --- a/lib/docs/scrapers/tensorflow.rb +++ b/lib/docs/scrapers/tensorflow.rb @@ -1,9 +1,11 @@ +# frozen_string_literal: true + module Docs class Tensorflow < UrlScraper self.name = 'TensorFlow' self.type = 'tensorflow' + self.release = '1.0' self.root_path = 'index.html' - self.force_gzip = true self.links = { home: 'https://www.tensorflow.org/', code: 'https://github.com/tensorflow/tensorflow' @@ -19,28 +21,49 @@ module Docs end options[:attribution] = <<-HTML - © 2015 The TensorFlow Authors. All rights reserved.
+ © 2017 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License. HTML version 'Python' do - self.base_url = 'https://www.tensorflow.org/api_docs/python/' - self.release = '0.12' + include MultipleBaseUrls + self.base_urls = ['https://www.tensorflow.org/api_docs/python/', 'https://www.tensorflow.org/api_guides/python/'] end version 'C++' do - self.base_url = 'https://www.tensorflow.org/api_docs/cc/' - self.release = '0.12' + include MultipleBaseUrls + self.base_urls = ['https://www.tensorflow.org/api_docs/cc/', 'https://www.tensorflow.org/api_guides/cc/'] end version 'Guide' do self.base_url = 'https://www.tensorflow.org/' - self.release = '0.12' - self.root_path = 'tutorials/' - self.initial_paths = %w(how_tos/) + self.root_path = 'get_started/get_started' + self.initial_paths = %w( + programmers_guide/reading_data + tutorials/mandelbrot + performance/performance_guide + deploy/hadoop + extend/architecture) + + options[:only_patterns] = [ + /\Aget_started/, + /\Aprogrammers_guide/, + /\Atutorials/, + /\Aperformance/, + /\Adeploy/, + /\Aextend/] + end + + private + + def parse(response) + unless response.url == root_url || self.class.version == 'Guide' + response.body.sub!(/