diff --git a/assets/javascripts/news.json b/assets/javascripts/news.json index e955b080..4a03943b 100644 --- a/assets/javascripts/news.json +++ b/assets/javascripts/news.json @@ -1,4 +1,8 @@ [ + [ + "2020-11-17", + "TensorFlow has been split into TensorFlow Python, TensorFlow C++" + ], [ "2020-11-14", "Newly added documentations: PyTorch, Spring Boot" diff --git a/lib/docs/filters/tensorflow/clean_html.rb b/lib/docs/filters/tensorflow/clean_html.rb index 7eeab03e..e508f971 100644 --- a/lib/docs/filters/tensorflow/clean_html.rb +++ b/lib/docs/filters/tensorflow/clean_html.rb @@ -2,9 +2,9 @@ module Docs class Tensorflow class CleanHtmlFilter < Filter def call - @doc = at_css('.devsite-article-inner') + @doc = at_css('.devsite-article') - css('hr', '.devsite-nav', '.devsite-content-footer', '.devsite-article-body > br', '.devsite-article-meta', 'devsite-nav-buttons', '.devsite-banner', '.tfo-api img').remove + css('hr', '.devsite-nav', '.devsite-content-footer', '.devsite-article-body > br', '.devsite-article-meta', 'devsite-nav-buttons', '.devsite-banner', '.tfo-api img', '.tfo-notebook-buttons img', '.tfo-notebook-buttons>:first-child').remove css('aside.note').each do |node| node.name = 'blockquote' diff --git a/lib/docs/filters/tensorflow/entries.rb b/lib/docs/filters/tensorflow/entries.rb index f71c6b7f..60aee30e 100644 --- a/lib/docs/filters/tensorflow/entries.rb +++ b/lib/docs/filters/tensorflow/entries.rb @@ -15,97 +15,101 @@ module Docs end def get_type - if version == 'Guide' and base_url.path.start_with?('/guide') - 'Guides' - elsif version == 'Guide' and base_url.path.start_with?('/tutorials') - 'Tutorials' - elsif slug.start_with?('tf/audio') + if slug.start_with?('audio') 'tf.audio' - elsif slug.start_with?('tf/autograph') + elsif slug.start_with?('autodiff') + 'tf.autodiff' + elsif slug.start_with?('autograph') 'tf.autograph' - elsif slug.start_with?('tf/bitwise') + elsif slug.start_with?('bitwise') 'tf.bitwise' - elsif slug.start_with?('tf/compat') + elsif slug.start_with?('compat') 'tf.compat' - elsif slug.start_with?('tf/config') + elsif slug.start_with?('config') 'tf.config' - elsif slug.start_with?('tf/data') + elsif slug.start_with?('data') 'tf.data' - elsif slug.start_with?('tf/debugging') + elsif slug.start_with?('debugging') 'tf.debugging' - elsif slug.start_with?('tf/distribute') + elsif slug.start_with?('distribute') 'tf.distribute' - elsif slug.start_with?('tf/dtypes') + elsif slug.start_with?('dtypes') 'tf.dtypes' - elsif slug.start_with?('tf/errors') + elsif slug.start_with?('errors') 'tf.errors' - elsif slug.start_with?('tf/estimator') + elsif slug.start_with?('estimator') 'tf.estimator' - elsif slug.start_with?('tf/experimental') + elsif slug.start_with?('experimental') 'tf.experimental' - elsif slug.start_with?('tf/feature_column') + elsif slug.start_with?('feature_column') 'tf.feature_column' - elsif slug.start_with?('tf/graph_util') + elsif slug.start_with?('graph_util') 'tf.graph_util' - elsif slug.start_with?('tf/image') + elsif slug.start_with?('image') 'tf.image' - elsif slug.start_with?('tf/initializers') + elsif slug.start_with?('initializers') 'tf.initializers' - elsif slug.start_with?('tf/io') + elsif slug.start_with?('io') 'tf.io' - elsif slug.start_with?('tf/keras') + elsif slug.start_with?('keras') 'tf.keras' - elsif slug.start_with?('tf/linalg') + elsif slug.start_with?('linalg') 'tf.linalg' - elsif slug.start_with?('tf/lite') + elsif slug.start_with?('lite') 'tf.lite' - elsif slug.start_with?('tf/lookup') + elsif slug.start_with?('lookup') 'tf.lookup' - elsif slug.start_with?('tf/losses') + elsif slug.start_with?('losses') 'tf.losses' - elsif slug.start_with?('tf/math') + elsif slug.start_with?('math') 'tf.math' - elsif slug.start_with?('tf/metrics') + elsif slug.start_with?('metrics') 'tf.metrics' - elsif slug.start_with?('tf/nest') + elsif slug.start_with?('mixed_precision') + 'tf.mixed_precision' + elsif slug.start_with?('mlir') + 'tf.mlir' + elsif slug.start_with?('nest') 'tf.nest' - elsif slug.start_with?('tf/nn') + elsif slug.start_with?('nn') 'tf.nn' - elsif slug.start_with?('tf/optimizers') + elsif slug.start_with?('optimizers') 'tf.optimizers' - elsif slug.start_with?('tf/quantization') + elsif slug.start_with?('profiler') + 'tf.profiler' + elsif slug.start_with?('quantization') 'tf.quantization' - elsif slug.start_with?('tf/queue') + elsif slug.start_with?('queue') 'tf.queue' - elsif slug.start_with?('tf/ragged') + elsif slug.start_with?('ragged') 'tf.ragged' - elsif slug.start_with?('tf/random') + elsif slug.start_with?('random') 'tf.random' - elsif slug.start_with?('tf/raw_ops') + elsif slug.start_with?('raw_ops') 'tf.raw_ops' - elsif slug.start_with?('tf/saved_model') + elsif slug.start_with?('saved_model') 'tf.saved_model' - elsif slug.start_with?('tf/sets') + elsif slug.start_with?('sets') 'tf.sets' - elsif slug.start_with?('tf/signal') + elsif slug.start_with?('signal') 'tf.signal' - elsif slug.start_with?('tf/sparse') + elsif slug.start_with?('sparse') 'tf.sparse' - elsif slug.start_with?('tf/strings') + elsif slug.start_with?('strings') 'tf.strings' - elsif slug.start_with?('tf/summary') + elsif slug.start_with?('summary') 'tf.summary' - elsif slug.start_with?('tf/sysconfig') + elsif slug.start_with?('sysconfig') 'tf.sysconfig' - elsif slug.start_with?('tf/test') + elsif slug.start_with?('test') 'tf.test' - elsif slug.start_with?('tf/tpu') + elsif slug.start_with?('tpu') 'tf.tpu' - elsif slug.start_with?('tf/train') + elsif slug.start_with?('train') 'tf.train' - elsif slug.start_with?('tf/version') + elsif slug.start_with?('version') 'tf.version' - elsif slug.start_with?('tf/xla') + elsif slug.start_with?('xla') 'tf.xla' else 'tf' diff --git a/lib/docs/scrapers/tensorflow.rb b/lib/docs/scrapers/tensorflow/tensorflow.rb similarity index 62% rename from lib/docs/scrapers/tensorflow.rb rename to lib/docs/scrapers/tensorflow/tensorflow.rb index 008afc54..6f49a521 100644 --- a/lib/docs/scrapers/tensorflow.rb +++ b/lib/docs/scrapers/tensorflow/tensorflow.rb @@ -1,11 +1,8 @@ -# frozen_string_literal: true - module Docs class Tensorflow < UrlScraper self.name = 'TensorFlow' self.type = 'tensorflow' - self.release = '2.1' - self.root_path = 'index.html' + self.root_path = 'all_symbols' self.links = { home: 'https://www.tensorflow.org/', code: 'https://github.com/tensorflow/tensorflow' @@ -17,22 +14,19 @@ module Docs options[:container] = '.devsite-main-content' options[:attribution] = <<-HTML - © 2019 The TensorFlow Authors. All rights reserved.
+ © 2020 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/' - end - - version 'C++' do - self.base_url = 'https://www.tensorflow.org/api_docs/cc/' + version '2.3' do + self.release = "#{version}.0" + self.base_url = "https://www.tensorflow.org/versions/r#{version}/api_docs/python/tf" end - version 'Guide' do - include MultipleBaseUrls - self.base_urls = ['https://www.tensorflow.org/guide/', 'https://www.tensorflow.org/tutorials/'] + version '1.15' do + self.release = "#{version}.0" + self.base_url = "https://www.tensorflow.org/versions/r#{version}/api_docs/python/tf" end def get_latest_version(opts) @@ -42,7 +36,7 @@ module Docs private def parse(response) - unless response.url == root_url || self.class.version == 'Guide' + unless response.url == root_url response.body.sub!(/