@ -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 ( '<br>' , " \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 <span/> code blocks to <code/> if inline otherwise
# <pre><code/></pre>.
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 = " <code> " +
node . inner_html . remove ( / \ n / ) . gsub ( '<br>' , " \n " ) . strip +
" </code> "
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 = " <pre> "
while node [ 'class' ] == 'REFTYPES'
node . inner_html = node . inner_html . remove ( / \ n / ) . gsub ( '<br>' , " \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 << " </pre> "
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