History

Update JavaScript documentation

Simon Legner committed 11 months ago

Commit e178e781 parent d2525f44 files · +45 −63Browse files

Unified · Split

4 files
  1. assets/stylesheets/pages/_mdn.scss +1 −0
  2. lib/docs/filters/javascript/clean_html.rb +6 −0
  3. lib/docs/filters/mdn/compat_tables.rb +37 −62
  4. lib/docs/scrapers/mdn/javascript.rb +1 −1
assets/stylesheets/pages/_mdn.scss+1−0
@@ -126,6 +126,7 @@ · 125 unmodified lines
126126 }
127127
128128 .bc-supports-yes, .bc-supports-yes + dd, .bc-supports-yes + dd + dd { background: var(--noteGreenBackground); }
129+ .bc-supports-preview, .bc-supports-preview + dd, .bc-supports-preview + dd + dd { background: var(--noteBlueBackground); }
129130 .bc-supports-unknown, .bc-supports-unknown + dd, .bc-supports-unknown + dd + dd { background: var(--noteBackground); }
130131 .bc-supports-partial, .bc-supports-partial + dd, .bc-supports-partial + dd + dd { background: var(--noteOrangeBackground); }
131132 .bc-supports-no, .bc-supports-no + dd, .bc-supports-no + dd + dd { background: var(--noteRedBackground); }
lib/docs/filters/javascript/clean_html.rb+6−0
@@ -19,6 +19,12 @@ module Docs · 18 unmodified lines
1919 css('div > .overheadIndicator:first-child:last-child', 'div > .blockIndicator:first-child:last-child').each do |node|
2020 node.parent.replace(node)
2121 end
22+
23+ css('.baseline-indicator').each do |node|
24+ if node.next.text == '> '
25+ node.next.remove
26+ end
27+ end
2228 end
2329 end
2430 end
lib/docs/filters/mdn/compat_tables.rb+37−62
@@ -138,77 +138,52 @@ module Docs · 137 unmodified lines
138138 version_removed = []
139139 notes = []
140140
141− if json
142− if json.is_a?(Array)
143− json.each do |element|
144−
145− if element['version_added']
146− version_added.push(element['version_added'])
147− else
148− version_added.push(false)
149− end
150−
151− if element['version_removed']
152− version_removed.push(element['version_removed'])
153− else
154− version_removed.push(false)
155− end
156−
157− if element['notes']
158− notes.push(element['notes'])
159− else
160− notes.push(false)
161− end
162−
163− end
164− else
165− version_added.push(json['version_added'])
166− version_removed.push(json['version_removed'])
167− notes.push(json['notes'])
168− end
141+ if !json
142+ format_string = "<td class=bc-supports-unknown><div>?</div></td>"
143+ entry.add_child(format_string)
144+ return
145+ end
169146
170− version_added.map! do |version|
171− if version == true
172− 'Yes'
173− elsif version == false
174− 'No'
175− elsif version.is_a?(String)
176− version
177− else
178− '?'
179− end
147+ format_string = "<td class=bc-supports-unknown>"
148+ (json.is_a?(Array) ? json : [json]).each do |element|
149+ version = element['version_added']
150+ if version.is_a?(String) and element['release_date']
151+ format_string = "<td class=bc-supports-yes>"
152+ format_string = "<td class=bc-supports-preview>" if element['release_date'] > Time.now.iso8601
153+ version_added.push("<abbr title='Release date: #{element['release_date']}'>#{version}</abbr>")
154+ elsif version == 'preview'
155+ format_string = "<td class=bc-supports-preview>"
156+ version_added.push(version)
157+ elsif version.is_a?(String)
158+ format_string = "<td class=bc-supports-yes>"
159+ version_added.push(version)
160+ elsif version == true
161+ format_string = "<td class=bc-supports-yes>"
162+ version_added.push('Yes')
163+ else
164+ format_string = "<td class=bc-supports-no>"
165+ version_added.push('No')
180166 end
167+ version_removed.push(element['version_removed'] || false)
168+ notes.push(element['notes'] || false)
169+ end
181170
182− if version_removed[0]
183− format_string = "<td class=bc-supports-no>"
184− elsif version_added[0] == 'No'
185− format_string = "<td class=bc-supports-no>"
186− elsif version_added[0] == '?'
187− format_string = "<td class=bc-supports-unknown>"
171+ for value in (0..version_added.length-1) do
172+ if version_removed[value]
173+ version_string = "#{version_added[value]}–#{version_removed[value]}"
188174 else
189− format_string = "<td class=bc-supports-yes>"
175+ version_string = version_added[value]
190176 end
191177
192− for value in (0..version_added.length-1) do
193− if version_removed[value]
194− version_string = "#{version_added[value]}–#{version_removed[value]}"
195− else
196− version_string = version_added[value]
197− end
198−
199− if notes[value]
200− format_string += "<details><summary>#{version_string}</summary>#{notes[value]}</details>"
201− else
202− format_string += "<div>#{version_string}</div>"
203− end
178+ if notes[value]
179+ format_string += "<details><summary>#{version_string}</summary>#{notes[value]}</details>"
180+ else
181+ format_string += "<div>#{version_string}</div>"
204182 end
205−
206− format_string += "</td>"
207−
208− else
209− format_string = "<td class=bc-supports-unknown><div>?</div></td>"
210183 end
211184
185+ format_string += "</td>"
186+
212187 entry.add_child(format_string)
213188 end
214189
lib/docs/scrapers/mdn/javascript.rb+1−1
@@ -3,7 +3,7 @@ module Docs · 2 unmodified lines
33 prepend FixInternalUrlsBehavior
44 prepend FixRedirectionsBehavior
55
6− # release = '2025-12-04'
6+ # release = '2025-12-14'
77 self.name = 'JavaScript'
88 self.base_url = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference'
99 self.links = {