diff --git a/assets/stylesheets/pages/_erlang.scss b/assets/stylesheets/pages/_erlang.scss
index 1b76cf6d..d723c1c1 100644
--- a/assets/stylesheets/pages/_erlang.scss
+++ b/assets/stylesheets/pages/_erlang.scss
@@ -6,4 +6,10 @@
.note { @extend %note; }
.warning { @extend %note, %note-red; }
.note .label, .warning .label { font-weight: var(--boldFontWeight); }
+
+ .since {
+ color: var(--textColorLight);
+ font-weight: normal;
+ font-size: small;
+ }
}
diff --git a/lib/docs/filters/erlang/clean_html.rb b/lib/docs/filters/erlang/clean_html.rb
index 8f55cc9b..33dfb5ac 100644
--- a/lib/docs/filters/erlang/clean_html.rb
+++ b/lib/docs/filters/erlang/clean_html.rb
@@ -30,34 +30,47 @@ module Docs
# others
+ # Remove JS on-hover highlighting
+ css('h3.title-link', 'h4.data-type-name', 'h4.func-head').each do |node|
+ node.remove_attribute('onmouseover')
+ node.remove_attribute('onmouseout')
+ end
+
css('a[name]').each do |node|
- # parent = node.parent
- # parent = parent.parent while parent.name == 'span'
- (node.next_element || node.parent)['id'] ||= node['name']
node.before(node.children).remove
end
css('h3').each do |node|
- node.name = 'h2'
content = node.content
node.content = content.capitalize if content == content.upcase
end
- css('p > .bold_code:first-child ~ br:last-child').each do |node|
- parent = node.parent
- parent.name = 'h3'
- parent.css('> br').remove
- parent.css('> code').each do |code|
- code.css('*:not(a):not(br)').each { |n| n.before(n.children).remove }
- code.inner_html = code.inner_html.gsub('
', "\n").strip
- end
+ # Subsume "Types" heading under function head heading
+ css('h4.func-head + .fun-types > h3.func-types-title')
+ .each { |node| node.name = 'h5' }
+
+ css('h3', 'h4', 'h5').each do |node|
+ node.name = node.name.sub(/\d/) { |i| i.to_i - 1 }
end
- css('pre:not(.REFTYPES) *:not(a)', 'a[href^=javascript]').each do |node|
- node.before(node.children).remove
+ # Convert code blocks to if inline otherwise
+ #
.
+ css('span.bold_code', 'span.code', '.func-head > span.title-name').each do |node|
+ node.remove_attribute('class')
+ node.css('span.bold_code', 'span.code')
+ .each { |n| n.before(n.children).remove }
+ if node.at_css('br') then
+ node.name = 'pre'
+ node.inner_html = "" +
+ node.inner_html.remove(/\n/).gsub('
', "\n").strip +
+ "
"
+ else
+ node.name = 'code'
+ node.inner_html = node.inner_html.strip.gsub(/\s+/, ' ')
+ end
end
- css('pre:not(.REFTYPES)').each do |node|
+ css('*:not(.REFTYPES) > pre').each do |node|
node['data-language'] = 'erlang'
node.inner_html = node.inner_html.strip_heredoc
end
@@ -70,23 +83,7 @@ module Docs
end
end
- css('.REFTYPES').each do |node|
- next unless node.parent
- html = "" - while node['class'] == 'REFTYPES' - node.inner_html = node.inner_html.remove(/\n/).gsub('" - node.before(html) - end - - css('.REFTYPES').remove + css('a[href^=javascript]').each { |n| n.before(n.children).remove } css('table').each do |node| node.remove_attribute('border') @@ -99,8 +96,6 @@ module Docs node.remove_attribute('valign') end - css('.bold_code').remove_attr('class') - doc end end diff --git a/lib/docs/filters/erlang/entries.rb b/lib/docs/filters/erlang/entries.rb index 8f1ddcf1..3373e1e7 100644 --- a/lib/docs/filters/erlang/entries.rb +++ b/lib/docs/filters/erlang/entries.rb @@ -44,10 +44,9 @@ module Docs if subpath.start_with?('lib/') names = Set.new entry_nodes.each_with_object [] do |node, entries| - id = node['name'] + id = node['id'] name = id.remove %r{\-\d*\z} name << ' (type)' if name.sub!(/\Atype-/, '') - name.remove! 'Module:' name.prepend "#{self.name}:" entries << [name, id] if names.add?(name) end @@ -67,9 +66,7 @@ module Docs def entry_nodes @entry_nodes ||= if subpath.start_with?('lib/') - css('p + div.REFBODY').each_with_object [] do |node, result| - result.concat(node.previous_element.css('a[name]').to_a) - end + css('article.func > h4', 'article.data-types-body > h4').entries elsif subpath.start_with?('erts') link = at_css(".flipMenu a[href='#{File.basename(subpath, '.html')}']") list = link.parent.parent diff --git a/lib/docs/filters/erlang/pre_clean_html.rb b/lib/docs/filters/erlang/pre_clean_html.rb index 8daefd28..c601c1ee 100644 --- a/lib/docs/filters/erlang/pre_clean_html.rb +++ b/lib/docs/filters/erlang/pre_clean_html.rb @@ -4,15 +4,6 @@ module Docs def call css('.flipMenu li[title] > a').remove unless subpath.start_with?('erts') # perf - css('.REFTYPES').each do |node| - node.name = 'pre' - end - - css('span.bold_code', 'span.code').each do |node| - node.name = 'code' - node.inner_html = node.inner_html.strip.gsub(/\s+/, ' ') - end - doc end end
', "\n") - node.css('*:not(a)').each { |n| n.before(n.children).remove } - html << node.inner_html.strip + "\n" - node = node.next_element - node.previous_element.remove - end - html.gsub! %r{\n{2,}}, "\n" - html.strip! - html << "