Browse Source

Update JavaScript documentation

Simon Legner 2 days ago
parent
commit
e178e78615

+ 1 - 0
assets/stylesheets/pages/_mdn.scss

@@ -126,6 +126,7 @@
   }
   }
 
 
   .bc-supports-yes, .bc-supports-yes + dd, .bc-supports-yes + dd + dd { background: var(--noteGreenBackground); }
   .bc-supports-yes, .bc-supports-yes + dd, .bc-supports-yes + dd + dd { background: var(--noteGreenBackground); }
+  .bc-supports-preview, .bc-supports-preview + dd, .bc-supports-preview + dd + dd { background: var(--noteBlueBackground); }
   .bc-supports-unknown, .bc-supports-unknown + dd, .bc-supports-unknown + dd + dd { background: var(--noteBackground); }
   .bc-supports-unknown, .bc-supports-unknown + dd, .bc-supports-unknown + dd + dd { background: var(--noteBackground); }
   .bc-supports-partial, .bc-supports-partial + dd, .bc-supports-partial + dd + dd { background: var(--noteOrangeBackground); }
   .bc-supports-partial, .bc-supports-partial + dd, .bc-supports-partial + dd + dd { background: var(--noteOrangeBackground); }
   .bc-supports-no, .bc-supports-no + dd, .bc-supports-no + dd + dd { background: var(--noteRedBackground); }
   .bc-supports-no, .bc-supports-no + dd, .bc-supports-no + dd + dd { background: var(--noteRedBackground); }

+ 6 - 0
lib/docs/filters/javascript/clean_html.rb

@@ -19,6 +19,12 @@ module Docs
         css('div > .overheadIndicator:first-child:last-child', 'div > .blockIndicator:first-child:last-child').each do |node|
         css('div > .overheadIndicator:first-child:last-child', 'div > .blockIndicator:first-child:last-child').each do |node|
           node.parent.replace(node)
           node.parent.replace(node)
         end
         end
+
+        css('.baseline-indicator').each do |node|
+          if node.next.text == '> '
+            node.next.remove
+          end
+        end
       end
       end
     end
     end
   end
   end

+ 37 - 62
lib/docs/filters/mdn/compat_tables.rb

@@ -138,77 +138,52 @@ module Docs
         version_removed = []
         version_removed = []
         notes = []
         notes = []
 
 
-        if json
-          if json.is_a?(Array)
-            json.each do |element|
-
-              if element['version_added']
-                version_added.push(element['version_added'])
-              else
-                version_added.push(false)
-              end
-
-              if element['version_removed']
-                version_removed.push(element['version_removed'])
-              else
-                version_removed.push(false)
-              end
-
-              if element['notes']
-                notes.push(element['notes'])
-              else
-                notes.push(false)
-              end
-
-            end
-          else
-            version_added.push(json['version_added'])
-            version_removed.push(json['version_removed'])
-            notes.push(json['notes'])
-          end
+        if !json
+          format_string = "<td class=bc-supports-unknown><div>?</div></td>"
+          entry.add_child(format_string)
+          return
+        end
 
 
-          version_added.map! do |version|
-            if version == true
-              'Yes'
-            elsif version == false
-              'No'
-            elsif version.is_a?(String)
-              version
-            else
-              '?'
-            end
+        format_string = "<td class=bc-supports-unknown>"
+        (json.is_a?(Array) ? json : [json]).each do |element|
+          version = element['version_added']
+          if version.is_a?(String) and element['release_date']
+            format_string = "<td class=bc-supports-yes>"
+            format_string = "<td class=bc-supports-preview>" if element['release_date'] > Time.now.iso8601
+            version_added.push("<abbr title='Release date: #{element['release_date']}'>#{version}</abbr>")
+          elsif version == 'preview'
+            format_string = "<td class=bc-supports-preview>"
+            version_added.push(version)
+          elsif version.is_a?(String)
+            format_string = "<td class=bc-supports-yes>"
+            version_added.push(version)
+          elsif version == true
+            format_string = "<td class=bc-supports-yes>"
+            version_added.push('Yes')
+          else
+            format_string = "<td class=bc-supports-no>"
+            version_added.push('No')
           end
           end
+          version_removed.push(element['version_removed'] || false)
+          notes.push(element['notes'] || false)
+        end
 
 
-          if version_removed[0]
-            format_string = "<td class=bc-supports-no>"
-          elsif version_added[0] == 'No'
-            format_string = "<td class=bc-supports-no>"
-          elsif version_added[0] == '?'
-            format_string = "<td class=bc-supports-unknown>"
+        for value in (0..version_added.length-1) do
+          if version_removed[value]
+            version_string = "#{version_added[value]}–#{version_removed[value]}"
           else
           else
-            format_string = "<td class=bc-supports-yes>"
+            version_string = version_added[value]
           end
           end
 
 
-          for value in (0..version_added.length-1) do
-            if version_removed[value]
-              version_string = "#{version_added[value]}–#{version_removed[value]}"
-            else
-              version_string = version_added[value]
-            end
-
-            if notes[value]
-              format_string += "<details><summary>#{version_string}</summary>#{notes[value]}</details>"
-            else
-              format_string += "<div>#{version_string}</div>"
-            end
+          if notes[value]
+            format_string += "<details><summary>#{version_string}</summary>#{notes[value]}</details>"
+          else
+            format_string += "<div>#{version_string}</div>"
           end
           end
-
-          format_string += "</td>"
-
-        else
-          format_string = "<td class=bc-supports-unknown><div>?</div></td>"
         end
         end
 
 
+        format_string += "</td>"
+
         entry.add_child(format_string)
         entry.add_child(format_string)
       end
       end
 
 

+ 1 - 1
lib/docs/scrapers/mdn/javascript.rb

@@ -3,7 +3,7 @@ module Docs
     prepend FixInternalUrlsBehavior
     prepend FixInternalUrlsBehavior
     prepend FixRedirectionsBehavior
     prepend FixRedirectionsBehavior
 
 
-    # release = '2025-12-04'
+    # release = '2025-12-14'
     self.name = 'JavaScript'
     self.name = 'JavaScript'
     self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference'
     self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference'
     self.links = {
     self.links = {