Update nodejs to 16.1 and update previous version

pull/1546/head
Enoc 4 years ago
parent 1eaf12b94e
commit 1ac3dd93dd

@ -10,6 +10,9 @@
> h4 { @extend %block-label; } > h4 { @extend %block-label; }
> h2 + h2, > h3 + h3 { margin-top: 0; } > h2 + h2, > h3 + h3 { margin-top: 0; }
h3 { @extend %block-label, %label-blue}
h4 { @extend %block-label }
p > code, li > code, .type { p > code, li > code, .type {
white-space: normal; white-space: normal;
@extend %label; @extend %label;
@ -24,4 +27,3 @@
.srclink { float: right; } .srclink { float: right; }
details > table { margin: 0; } details > table { margin: 0; }
} }

@ -15,6 +15,8 @@ module Docs
end end
css('pre').each do |node| css('pre').each do |node|
next unless node.at_css('code')
if lang = node.at_css('code')['class'] if lang = node.at_css('code')['class']
node['data-language'] = lang.remove(%r{lang(uage)?-}) node['data-language'] = lang.remove(%r{lang(uage)?-})
end end
@ -22,6 +24,19 @@ module Docs
node.content = node.content node.content = node.content
end end
css('h3 > code, h4 > code, h5 > code').each do |node|
tmp = node.content
has_parethesis = true if tmp =~ /\(/
tmp.gsub!(/\(.*\)/, '')
if has_parethesis
tmp << '()'
end
node.parent['id'] = tmp
end
doc doc
end end
end end

@ -1,104 +1,38 @@
module Docs module Docs
class Node class Node
class EntriesFilter < Docs::EntriesFilter class EntriesFilter < Docs::EntriesFilter
REPLACE_NAMES = {
'addons' => 'C/C++ Addons',
'debugger' => 'Debugger',
'deprecations' => 'Deprecated APIs',
'modules' => 'module' }
REPLACE_TYPES = {
'C++ Addons' => 'Miscellaneous',
'C/C++ Addons' => 'Miscellaneous',
'Debugger' => 'Miscellaneous',
'Deprecated APIs' => 'Miscellaneous',
'Tracing' => 'Miscellaneous',
'os' => 'OS',
'StringDecoder' => 'String Decoder',
'TLS (SSL)' => 'TLS/SSL',
'UDP / Datagram Sockets' => 'UDP/Datagram',
'VM (Executing JavaScript)' => 'VM',
'Executing JavaScript' => 'VM' }
def get_name def get_name
REPLACE_NAMES[slug] || slug type
end end
def get_type def get_type
type = at_css('h1').content.strip at_css('h2').content.strip
type.remove! %r{\[.*\]}
REPLACE_TYPES[type] || "#{type.first.upcase}#{type[1..-1]}"
end end
def additional_entries def additional_entries
return [] if type == 'Miscellaneous'
klass = nil
entries = [] entries = []
css('> [id]').each do |node| css('h3 > code, h4 > code, h5 > code').each do |node|
next if node.name == 'h1'
klass = nil if node.name == 'h2'
name = node.content.strip
name.remove! %r{\s*\[src\]}
# Skip constructors
if name.start_with? 'new '
next
end
# Ignore most global objects (found elsewhere)
if type == 'Global Objects'
entries << [name, node['id']] if name.start_with?('_') || name == 'global'
next
end
# Classes case node.parent.child.content
if name.gsub! 'Class: ', '' when /Class/
name.remove! 'events.' # EventEmitter entries << ["Class #{node.parent['id']}", node.parent['id'], type]
klass = name when /Event/
entries << [name, node['id']] entries << ["Event #{node.parent['id']}", node.parent['id'], type]
next
end end
# Events if node.parent.child.is_a?(Nokogiri::XML::Text)
if name.sub! %r{\AEvent: '(.+)'\z}, '\1'
name << " event (#{klass || type})"
entries << [name, node['id']]
next next
else
entries << [node.parent['id'], node.parent['id'], type]
end end
name.gsub! %r{\(.*?\);?}, '()'
name.gsub! %r{\[.+?\]}, '[]'
name.remove! 'assert(), ' # assert/assert.ok
# Skip all that start with an uppercase letter ("Example") or include a space ("exports alias")
next unless (name.first.upcase! && !name.include?(' ')) || name.start_with?('Class Method')
# Differentiate server classes (http, https, net, etc.)
name.sub!('server.') { "#{(klass || 'https').sub('.', '_').downcase}." }
# Differentiate socket classes (net, dgram, etc.)
name.sub!('socket.') { "#{klass.sub('.', '_').downcase}." }
name.remove! 'Class Method:'
name.sub! 'buf.', 'buffer.'
name.sub! 'buf[', 'buffer['
name.sub! 'child.', 'childprocess.'
name.sub! 'decoder.', 'stringdecoder.'
name.sub! 'emitter.', 'eventemitter.'
name.sub! %r{\Arl\.}, 'interface.'
name.sub! 'rs.', 'readstream.'
name.sub! 'ws.', 'writestream.'
# Skip duplicates (listen, connect, etc.)
unless name == entries[-1].try(:first) || name == entries[-2].try(:first)
entries << [name, node['id']]
end
end end
entries entries
end end
end end
end end
end end

@ -0,0 +1,104 @@
module Docs
class Node
class OldEntriesFilter < Docs::EntriesFilter
REPLACE_NAMES = {
'addons' => 'C/C++ Addons',
'debugger' => 'Debugger',
'deprecations' => 'Deprecated APIs',
'modules' => 'module' }
REPLACE_TYPES = {
'C++ Addons' => 'Miscellaneous',
'C/C++ Addons' => 'Miscellaneous',
'Debugger' => 'Miscellaneous',
'Deprecated APIs' => 'Miscellaneous',
'Tracing' => 'Miscellaneous',
'os' => 'OS',
'StringDecoder' => 'String Decoder',
'TLS (SSL)' => 'TLS/SSL',
'UDP / Datagram Sockets' => 'UDP/Datagram',
'VM (Executing JavaScript)' => 'VM',
'Executing JavaScript' => 'VM' }
def get_name
REPLACE_NAMES[slug] || slug
end
def get_type
type = at_css('h1').content.strip
type.remove! %r{\[.*\]}
REPLACE_TYPES[type] || "#{type.first.upcase}#{type[1..-1]}"
end
def additional_entries
return [] if type == 'Miscellaneous'
klass = nil
entries = []
css('> [id]').each do |node|
next if node.name == 'h1'
klass = nil if node.name == 'h2'
name = node.content.strip
name.remove! %r{\s*\[src\]}
# Skip constructors
if name.start_with? 'new '
next
end
# Ignore most global objects (found elsewhere)
if type == 'Global Objects'
entries << [name, node['id']] if name.start_with?('_') || name == 'global'
next
end
# Classes
if name.gsub! 'Class: ', ''
name.remove! 'events.' # EventEmitter
klass = name
entries << [name, node['id']]
next
end
# Events
if name.sub! %r{\AEvent: '(.+)'\z}, '\1'
name << " event (#{klass || type})"
entries << [name, node['id']]
next
end
name.gsub! %r{\(.*?\);?}, '()'
name.gsub! %r{\[.+?\]}, '[]'
name.remove! 'assert(), ' # assert/assert.ok
# Skip all that start with an uppercase letter ("Example") or include a space ("exports alias")
next unless (name.first.upcase! && !name.include?(' ')) || name.start_with?('Class Method')
# Differentiate server classes (http, https, net, etc.)
name.sub!('server.') { "#{(klass || 'https').sub('.', '_').downcase}." }
# Differentiate socket classes (net, dgram, etc.)
name.sub!('socket.') { "#{klass.sub('.', '_').downcase}." }
name.remove! 'Class Method:'
name.sub! 'buf.', 'buffer.'
name.sub! 'buf[', 'buffer['
name.sub! 'child.', 'childprocess.'
name.sub! 'decoder.', 'stringdecoder.'
name.sub! 'emitter.', 'eventemitter.'
name.sub! %r{\Arl\.}, 'interface.'
name.sub! 'rs.', 'readstream.'
name.sub! 'ws.', 'writestream.'
# Skip duplicates (listen, connect, etc.)
unless name == entries[-1].try(:first) || name == entries[-2].try(:first)
entries << [name, node['id']]
end
end
entries
end
end
end
end

@ -14,6 +14,7 @@ module Docs
options[:root_title] = 'Node.js' options[:root_title] = 'Node.js'
options[:container] = '#apicontent' options[:container] = '#apicontent'
options[:skip] = %w(index.html all.html documentation.html synopsis.html) options[:skip] = %w(index.html all.html documentation.html synopsis.html)
# options[:only] = ['addons.html']
options[:attribution] = <<-HTML options[:attribution] = <<-HTML
&copy; Joyent, Inc. and other Node contributors<br> &copy; Joyent, Inc. and other Node contributors<br>
@ -23,38 +24,43 @@ module Docs
HTML HTML
version do version do
self.release = '15.5.0' self.release = '16.1.0'
self.base_url = 'https://nodejs.org/dist/latest-v15.x/docs/api/' self.base_url = 'https://nodejs.org/api/'
end end
version '14 LTS' do version '14 LTS' do
self.release = '14.15.3' self.release = '14.17.0'
self.base_url = 'https://nodejs.org/dist/latest-v14.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v14.x/docs/api/'
end end
version '12 LTS' do version '12 LTS' do
self.release = '12.19.0' self.release = '12.22.1'
self.base_url = 'https://nodejs.org/dist/latest-v12.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v12.x/docs/api/'
html_filters.replace('node/entries', 'node/old_entries')
end end
version '10 LTS' do version '10 LTS' do
self.release = '10.16.3' self.release = '10.24.1'
self.base_url = 'https://nodejs.org/dist/latest-v10.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v10.x/docs/api/'
html_filters.replace('node/entries', 'node/old_entries')
end end
version '8 LTS' do version '8 LTS' do
self.release = '8.16.1' self.release = '8.17.0'
self.base_url = 'https://nodejs.org/dist/latest-v8.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v8.x/docs/api/'
html_filters.replace('node/entries', 'node/old_entries')
end end
version '6 LTS' do version '6 LTS' do
self.release = '6.14.4' self.release = '6.17.1'
self.base_url = 'https://nodejs.org/dist/latest-v6.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v6.x/docs/api/'
html_filters.replace('node/entries', 'node/old_entries')
end end
version '4 LTS' do version '4 LTS' do
self.release = '4.9.1' self.release = '4.9.1'
self.base_url = 'https://nodejs.org/dist/latest-v4.x/docs/api/' self.base_url = 'https://nodejs.org/dist/latest-v4.x/docs/api/'
html_filters.replace('node/entries', 'node/old_entries')
end end
def get_latest_version(opts) def get_latest_version(opts)

Loading…
Cancel
Save