require 'rdoc/generator/html' require 'rdoc/generator/html/one_page_html' ## # = CSS2 RDoc HTML template # # This is a template for RDoc that uses XHTML 1.0 Transitional 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 visbility of each method's source with each click on the '[source]' # link. # # == 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::FRAMELESS FRAMELESS = true FONTS = "Verdana,Arial,Helvetica,sans-serif" STYLE = <<-EOF body { font-family: #{FONTS}; font-size: 90%; margin: 0; margin-left: 40px; padding: 0; background: white; } h1, h2, h3, h4 { margin: 0; color: #efefef; 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; } #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; } .xxsection-bar { background: #eee; color: #333; padding: 3px; } .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 } /* --- 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: hidden; } div.method-source-code pre { color: #ffdead; overflow: hidden; } /* --- Ruby keyword styles --------------------- */ .standalone-code { background: #221111; color: #ffdead; overflow: hidden; } .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 ## # Header template XHTML_PREAMBLE = <<-EOF "?> EOF HEADER = XHTML_PREAMBLE + <<-EOF <%= values["title"] %> " /> " type="text/css" media="screen" /> EOF ## # Context content template CONTEXT_CONTENT = %{ } ## # Footer template FOOTER = <<-EOF
EOF ## # File page header template FILE_PAGE = <<-EOF

<%= values["short_name"] %>

Path: <%= values["full_path"] %> <% if values["cvsurl"] then %>  (">CVS) <% end %>
Last Update: <%= values["dtm_modified"] %>
EOF ## # Class page header template 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 ## # Method list template 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 values["classlist"] then %>

Classes and Modules

<%= values["classlist"] %>
<% end %> <% if values["constants"] then %>

Constants

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

External Aliases

<% values["aliases"].each do |aliases| $stderr.puts({ :aliases => aliases }.inspect) %> <% if values["desc"] then %> <% end %> <% end %><%# values["aliases"] %>
<%= values["old_name"] %> -> <%= values["new_name"] %>
  <%= values["desc"] %>
<% end %> <% if values["attributes"] then %>

Attributes

<% values["attributes"].each do |attributes| $stderr.puts({ :attributes => attributes }.inspect) %> <% if values["rw"] then %> <% end %> <% unless values["rw"] then %> <% end %> <% end %><%# values["attributes"] %>
<%= values["name"] %> [<%= values["rw"] %>]   <%= values["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| %> <% end %><%# method_list["methods"] %> <% end %> <% end %><%# sections["method_list"] %>
<% end %> <% end %><%# values["sections"] %> EOF ## # Body template BODY = HEADER + %{ <%= template_include %>
} + METHOD_LIST + %{
} + FOOTER ## # Source code template SRC_PAGE = XHTML_PREAMBLE + <<-EOF <%= values["title"] %> " /> " type="text/css" media="screen" />
<%= values["code"] %>
EOF ## # Index file templates FR_INDEX_BODY = %{ <%= template_include %> } FILE_INDEX = XHTML_PREAMBLE + <<-EOF <%= values["list_title"] %> " /> " type="text/css" />

<%= values["list_title"] %>

<% values["entries"].each do |entries| %> "><%= entries["name"] %>
<% end %><%# values["entries"] %>
EOF CLASS_INDEX = FILE_INDEX METHOD_INDEX = FILE_INDEX INDEX = <<-EOF "?> <%= values["title"] %> " /> " name="docwin" /> EOF end