require 'rdoc/generator/html' require 'rdoc/generator/html/common' ## # = CSS2 RDoc HTML template # # This is a template for RDoc that uses XHTML 1.0 Strict and dictates a # bit more of the appearance of the output to cascading stylesheets than the # default. It was designed for clean inline code display, and uses DHTMl to # toggle the visibility of each method's source with each click on the # '[source]' link. # # This template *also* forms the basis of the frameless template. # # == Authors # # * Michael Granger # # Copyright (c) 2002, 2003 The FaerieMUD Consortium. Some rights reserved. # # This work is licensed under the Creative Commons Attribution License. To # view a copy of this license, visit # http://creativecommons.org/licenses/by/1.0/ or send a letter to Creative # Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. module RDoc::Generator::HTML::HTML include RDoc::Generator::HTML::Common FONTS = "Verdana,Arial,Helvetica,sans-serif" STYLE = <<-EOF body { font-family: #{FONTS}; font-size: 90%; margin: 0; margin-left: 40px; padding: 0; background: white; color: black; } h1, h2, h3, h4 { margin: 0; background: transparent; } h1 { font-size: 150%; } h2,h3,h4 { margin-top: 1em; } :link, :visited { background: #eef; color: #039; text-decoration: none; } :link:hover, :visited:hover { background: #039; color: #eef; } /* Override the base stylesheet's Anchor inside a table cell */ td > :link, td > :visited { background: transparent; color: #039; text-decoration: none; } /* and inside a section title */ .section-title > :link, .section-title > :visited { background: transparent; color: #eee; text-decoration: none; } /* === Structural elements =================================== */ .index { margin: 0; margin-left: -40px; padding: 0; font-size: 90%; } .index :link, .index :visited { margin-left: 0.7em; } .index .section-bar { margin-left: 0px; padding-left: 0.7em; background: #ccc; font-size: small; } #classHeader, #fileHeader { width: auto; color: white; padding: 0.5em 1.5em 0.5em 1.5em; margin: 0; margin-left: -40px; border-bottom: 3px solid #006; } #classHeader :link, #fileHeader :link, #classHeader :visited, #fileHeader :visited { background: inherit; color: white; } #classHeader td, #fileHeader td { background: inherit; color: white; } #fileHeader { background: #057; } #classHeader { background: #048; } .class-name-in-header { font-size: 180%; font-weight: bold; } #bodyContent { padding: 0 1.5em 0 1.5em; } #description { padding: 0.5em 1.5em; background: #efefef; border: 1px dotted #999; } #description h1, #description h2, #description h3, #description h4, #description h5, #description h6 { color: #125; background: transparent; } #validator-badges { text-align: center; } #validator-badges img { border: 0; } #copyright { color: #333; background: #efefef; font: 0.75em sans-serif; margin-top: 5em; margin-bottom: 0; padding: 0.5em 2em; } /* === Classes =================================== */ table.header-table { color: white; font-size: small; } .type-note { font-size: small; color: #dedede; } .section-bar { color: #333; border-bottom: 1px solid #999; margin-left: -20px; } .section-title { background: #79a; color: #eee; padding: 3px; margin-top: 2em; margin-left: -30px; border: 1px solid #999; } .top-aligned-row { vertical-align: top } .bottom-aligned-row { vertical-align: bottom } #diagram img { border: 0; } /* --- Context section classes ----------------------- */ .context-row { } .context-item-name { font-family: monospace; font-weight: bold; color: black; } .context-item-value { font-size: small; color: #448; } .context-item-desc { color: #333; padding-left: 2em; } /* --- Method classes -------------------------- */ .method-detail { background: #efefef; padding: 0; margin-top: 0.5em; margin-bottom: 1em; border: 1px dotted #ccc; } .method-heading { color: black; background: #ccc; border-bottom: 1px solid #666; padding: 0.2em 0.5em 0 0.5em; } .method-signature { color: black; background: inherit; } .method-name { font-weight: bold; } .method-args { font-style: italic; } .method-description { padding: 0 0.5em 0 0.5em; } /* --- Source code sections -------------------- */ :link.source-toggle, :visited.source-toggle { font-size: 90%; } div.method-source-code { background: #262626; color: #ffdead; margin: 1em; padding: 0.5em; border: 1px dashed #999; overflow: auto; } div.method-source-code pre { color: #ffdead; } /* --- Ruby keyword styles --------------------- */ .standalone-code { background: #221111; color: #ffdead; overflow: auto; } .ruby-constant { color: #7fffd4; background: transparent; } .ruby-keyword { color: #00ffff; background: transparent; } .ruby-ivar { color: #eedd82; background: transparent; } .ruby-operator { color: #00ffee; background: transparent; } .ruby-identifier { color: #ffdead; background: transparent; } .ruby-node { color: #ffa07a; background: transparent; } .ruby-comment { color: #b22222; font-weight: bold; background: transparent; } .ruby-regexp { color: #ffa07a; background: transparent; } .ruby-value { color: #7fffd4; background: transparent; } EOF ##################################################################### ### H E A D E R T E M P L A T E ##################################################################### HEADER = XHTML_STRICT_PREAMBLE + HTML_ELEMENT + <<-EOF <%= values[:title] %> EOF ##################################################################### ### F O O T E R T E M P L A T E ##################################################################### FOOTER = <<-EOF

[Validate]

EOF ##################################################################### ### F I L E P A G E H E A D E R T E M P L A T E ##################################################################### FILE_PAGE = <<-EOF

<%= values[:short_name] %>

Path: <%= values[:full_path] %> <% if values[:cvsurl] then %>  (CVS) <% end %>
Last Update: <%= values[:dtm_modified] %>
EOF ##################################################################### ### C L A S S P A G E H E A D E R T E M P L A T E ##################################################################### CLASS_PAGE = <<-EOF
<% if values[:parent] then %> <% end %>
<%= values[:classmod] %> <%= values[:full_name] %>
In: <% values[:infiles].each do |infiles| %> <% if infiles[:full_path_url] then %> <% end %> <%= infiles[:full_path] %> <% if infiles[:full_path_url] then %> <% end %> <% if infiles[:cvsurl] then %>  (CVS) <% end %>
<% end %><%# values[:infiles] %>
Parent: <% if values[:par_url] then %> <% end %> <%= values[:parent] %> <% if values[:par_url] then %> <% end %>
EOF ##################################################################### ### M E T H O D L I S T T E M P L A T E ##################################################################### METHOD_LIST = <<-EOF
<% if values[:diagram] then %>
<%= values[:diagram] %>
<% end if values[:description] then %>
<%= values[:description] %>
<% end if values[:requires] then %>

Required files

<% values[:requires].each do |requires| %> <%= href requires[:aref], requires[:name] %>   <% end %><%# values[:requires] %>
<% end if values[:toc] then %>

Contents

<% end %>
<% if values[:methods] then %>

Methods

<% values[:methods].each do |methods| %> <%= href methods[:aref], methods[:name] %>   <% end %><%# values[:methods] %>
<% end %>
<% if values[:includes] then %>

Included Modules

<% values[:includes].each do |includes| %> <%= href includes[:aref], includes[:name] %> <% end %><%# values[:includes] %>
<% end values[:sections].each do |sections| %>
<% if sections[:sectitle] then %>

<%= sections[:sectitle] %>

<% if sections[:seccomment] then %>
<%= sections[:seccomment] %>
<% end end if sections[:classlist] then %>

Classes and Modules

<%= sections[:classlist] %>
<% end if sections[:constants] then %>

Constants

<% sections[:constants].each do |constants| %> <% if constants[:desc] then %> <% end %> <% end %><%# sections[:constants] %>
<%= constants[:name] %> = <%= constants[:value] %>  <%= constants[:desc] %>
<% end if sections[:aliases] then %>

External Aliases

<% sections[:aliases].each do |aliases| %> <% if aliases[:desc] then %> <% end end %><%# sections[:aliases] %>
<%= aliases[:old_name] %> -> <%= aliases[:new_name] %>
  <%= aliases[:desc] %>
<% end %> <% if sections[:attributes] then %>

Attributes

<% sections[:attributes].each do |attribute| %> <% if attribute[:rw] then %> <% end unless attribute[:rw] then %> <% end %> <% end %><%# sections[:attributes] %>
<%= attribute[:name] %> [<%= attribute[:rw] %>]   <%= attribute[:a_desc] %>
<% end %> <% if sections[:method_list] then %>
<% sections[:method_list].each do |method_list| if method_list[:methods] then %>

<%= method_list[:type] %> <%= method_list[:category] %> methods

<% method_list[:methods].each do |methods| %>
<% if methods[:m_desc] then %> <%= methods[:m_desc] %> <% end if methods[:sourcecode] then %>

[Source]

<%= methods[:sourcecode] %>
<% end %>
<% end %><%# method_list[:methods] %><% end end %><%# sections[:method_list] %>
<% end %> <% end %><%# values[:sections] %> EOF ##################################################################### ### B O D Y T E M P L A T E ##################################################################### BODY = HEADER + %{ <%= template_include %>
} + METHOD_LIST + %{
} + FOOTER ##################################################################### ### S O U R C E C O D E T E M P L A T E ##################################################################### SRC_PAGE = XHTML_STRICT_PREAMBLE + HTML_ELEMENT + <<-EOF <%= values[:title] %>
<%= values[:code] %>
EOF ##################################################################### ### I N D E X F I L E T E M P L A T E S ##################################################################### FR_INDEX_BODY = %{<%= template_include %>} FILE_INDEX = XHTML_STRICT_PREAMBLE + HTML_ELEMENT + <<-EOF <%= values[:title] %>

<%= values[:list_title] %>

<% values[:entries].each do |entries| %> <%= entries[:name] %>
<% end %><%# values[:entries] %>
EOF CLASS_INDEX = FILE_INDEX METHOD_INDEX = FILE_INDEX INDEX = XHTML_FRAME_PREAMBLE + HTML_ELEMENT + <<-EOF <%= values[:title] %> EOF end