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!(/