浏览代码

Merge pull request #1496 from freeCodeCamp/typescript-handbook

Update TypeScript documentation (New Handbook)
Simon Legner 4 年之前
父节点
当前提交
d04c0651ae

+ 1 - 0
assets/stylesheets/application.css.scss

@@ -116,6 +116,7 @@
         'pages/tcl_tk',
         'pages/tensorflow',
         'pages/terraform',
+        'pages/typescript',
         'pages/underscore',
         'pages/vue',
         'pages/webpack',

+ 4 - 0
assets/stylesheets/pages/_typescript.scss

@@ -0,0 +1,4 @@
+._typescript {
+  @extend %simple;
+  .deprecated { @extend %label-red; }
+}

+ 10 - 1
lib/docs/filters/typescript/clean_html.rb

@@ -24,7 +24,11 @@ module Docs
 
       def other
         if base_url.path == '/docs/handbook/'
+          deprecated = at_css('#deprecated-content')
+          deprecated.css('h3', '#deprecated-icon').remove if deprecated
+          deprecated.add_class('deprecated') if deprecated
           @doc = at_css('article > .whitespace > .markdown')
+          doc.child.before(deprecated) if deprecated
         else # tsconfig page
           @doc = at_css('.markdown > div')
 
@@ -36,9 +40,14 @@ module Docs
         css('pre').each do |node|
           language = node.at_css('.language-id') ? node.at_css('.language-id').content : 'typescript'
           node.css('.language-id').remove
-          node.content = node.content
+          if node.at_css('.line').nil?
+            node.content = node.content
+          else
+            node.content = node.css('.line').map(&:content).join("\n")
+          end
           node['data-language'] = LANGUAGE_REPLACE[language] || language
           node.remove_attribute('class')
+          node.remove_attribute('style')
         end
       end
 

+ 17 - 1
lib/docs/filters/typescript/entries.rb

@@ -2,15 +2,31 @@ module Docs
   class Typescript
     class EntriesFilter < Docs::EntriesFilter
 
+      DEPRECATED_PAGES = %w(
+        advanced-types
+        basic-types
+        classes
+        functions
+        generics
+        interfaces
+        literal-types
+        unions-and-intersections
+      )
+
       def get_name
         at_css('h1') ? at_css('h1').content : at_css('h2').content
       end
 
       def get_type
-        name
+        if DEPRECATED_PAGES.include? slug
+          'Handbook (deprecated)'
+        else
+          name
+        end
       end
 
       def additional_entries
+        return [] if DEPRECATED_PAGES.include? slug
         base_url.path == '/' ? tsconfig_entries : handbook_entries
       end
 

+ 2 - 3
lib/docs/scrapers/typescript.rb

@@ -3,8 +3,8 @@ module Docs
     include MultipleBaseUrls
 
     self.name = 'TypeScript'
-    self.type = 'simple'
-    self.release = '4.2.2'
+    self.type = 'typescript'
+    self.release = '4.2.3'
     self.base_urls = [
       'https://www.typescriptlang.org/docs/handbook/',
       'https://www.typescriptlang.org/'
@@ -29,7 +29,6 @@ module Docs
     ]
 
     options[:skip_patterns] = [
-      /2/,
       /release-notes/,
       /play\//
     ]