|
|
|
@ -5,70 +5,6 @@ module Docs
|
|
|
|
|
# Remove unnecessary elements
|
|
|
|
|
css('head, script, style').remove
|
|
|
|
|
|
|
|
|
|
# Add syntax highlighting CSS
|
|
|
|
|
style = doc.document.create_element('style')
|
|
|
|
|
style.content = <<-CSS
|
|
|
|
|
.highlight { background: #272b30; color: #e9ecef; border-radius: 4px; margin: 1em 0; }
|
|
|
|
|
.highlight pre { margin: 0; padding: 10px; }
|
|
|
|
|
.highlight .k { color: #cc7832; font-weight: bold; } /* Keyword */
|
|
|
|
|
.highlight .kd { color: #cc7832; font-weight: bold; } /* Keyword.Declaration */
|
|
|
|
|
.highlight .nb { color: #6897bb; } /* Name.Builtin */
|
|
|
|
|
.highlight .nx { color: #ffc66d; } /* Name.Other */
|
|
|
|
|
.highlight .nf { color: #ffc66d; } /* Name.Function */
|
|
|
|
|
.highlight .mi { color: #6897bb; } /* Literal.Number.Integer */
|
|
|
|
|
.highlight .s1 { color: #6a8759; } /* Literal.String.Single */
|
|
|
|
|
.highlight .s2 { color: #6a8759; } /* Literal.String.Double */
|
|
|
|
|
.highlight .c1 { color: #808080; font-style: italic; } /* Comment.Single */
|
|
|
|
|
.highlight .lineno { color: #606366; margin-right: 10px; -webkit-user-select: none; user-select: none; }
|
|
|
|
|
.highlight-javascript { padding: 0; }
|
|
|
|
|
|
|
|
|
|
/* Method signatures */
|
|
|
|
|
.sig { padding: 5px 10px; }
|
|
|
|
|
.sig-name { color: #ffc66d; }
|
|
|
|
|
.sig-param { color: #e9ecef; }
|
|
|
|
|
.sig-param .sig-type { color: #6897bb; }
|
|
|
|
|
.sig-returns { color: #cc7832; }
|
|
|
|
|
.sig-returns .sig-type { color: #6897bb; }
|
|
|
|
|
.sig-paren { color: #e9ecef; }
|
|
|
|
|
.property .pre { color: #cc7832; }
|
|
|
|
|
|
|
|
|
|
/* Inline code */
|
|
|
|
|
code.literal { background: #2b2b2b; padding: 2px 4px; border-radius: 3px; }
|
|
|
|
|
code.literal .pre { color: #e9ecef; }
|
|
|
|
|
|
|
|
|
|
/* Links */
|
|
|
|
|
.reference { color: #6897bb; text-decoration: none; }
|
|
|
|
|
.reference:hover { text-decoration: underline; }
|
|
|
|
|
.reference.external { color: #6a8759; }
|
|
|
|
|
|
|
|
|
|
/* Notes */
|
|
|
|
|
.admonition.note { background: #2b2b2b; padding: 12px 15px; border-left: 4px solid #6897bb; margin: 1em 0; }
|
|
|
|
|
.admonition-title { color: #6897bb; font-weight: bold; margin: 0 0 5px 0; }
|
|
|
|
|
CSS
|
|
|
|
|
doc.at_css('head') ? doc.at_css('head').add_child(style) : doc.add_child(style)
|
|
|
|
|
|
|
|
|
|
# Create a wrapper div for better styling
|
|
|
|
|
if root = at_css('body')
|
|
|
|
|
content = root.inner_html
|
|
|
|
|
else
|
|
|
|
|
content = doc.inner_html
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Create Django-like structure
|
|
|
|
|
content = <<-HTML
|
|
|
|
|
<div class="document">
|
|
|
|
|
<div class="documentwrapper">
|
|
|
|
|
<div class="bodywrapper">
|
|
|
|
|
<div class="body" role="main">
|
|
|
|
|
#{content}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
HTML
|
|
|
|
|
|
|
|
|
|
doc.inner_html = content
|
|
|
|
|
|
|
|
|
|
# Handle source links
|
|
|
|
|
css('h2').each do |node|
|
|
|
|
|
if node.content.strip == 'Source'
|
|
|
|
@ -319,6 +255,10 @@ module Docs
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Remove the navigation arrows and links
|
|
|
|
|
css('.nav').remove if at_css('.nav')
|
|
|
|
|
# If the arrows are in a different container, adjust the selector accordingly
|
|
|
|
|
|
|
|
|
|
doc
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|