diff options
Diffstat (limited to 'lib/rdoc/generator')
| -rw-r--r-- | lib/rdoc/generator/chm.rb | 113 | ||||
| -rw-r--r-- | lib/rdoc/generator/chm/chm.rb | 100 | ||||
| -rw-r--r-- | lib/rdoc/generator/html.rb | 445 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/common.rb | 24 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/frameless.rb | 92 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/hefss.rb | 150 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/html.rb | 769 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/kilmer.rb | 151 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/kilmerfactory.rb | 427 | ||||
| -rw-r--r-- | lib/rdoc/generator/html/one_page_html.rb | 122 | ||||
| -rw-r--r-- | lib/rdoc/generator/ri.rb | 226 | ||||
| -rw-r--r-- | lib/rdoc/generator/texinfo.rb | 81 | ||||
| -rw-r--r-- | lib/rdoc/generator/texinfo/class.texinfo.erb | 44 | ||||
| -rw-r--r-- | lib/rdoc/generator/texinfo/file.texinfo.erb | 6 | ||||
| -rw-r--r-- | lib/rdoc/generator/texinfo/method.texinfo.erb | 6 | ||||
| -rw-r--r-- | lib/rdoc/generator/texinfo/texinfo.erb | 28 | ||||
| -rw-r--r-- | lib/rdoc/generator/xml.rb | 117 | ||||
| -rw-r--r-- | lib/rdoc/generator/xml/rdf.rb | 113 | ||||
| -rw-r--r-- | lib/rdoc/generator/xml/xml.rb | 123 |
19 files changed, 0 insertions, 3137 deletions
diff --git a/lib/rdoc/generator/chm.rb b/lib/rdoc/generator/chm.rb deleted file mode 100644 index 7537365842..0000000000 --- a/lib/rdoc/generator/chm.rb +++ /dev/null @@ -1,113 +0,0 @@ -require 'rdoc/generator/html' - -class RDoc::Generator::CHM < RDoc::Generator::HTML - - HHC_PATH = "c:/Program Files/HTML Help Workshop/hhc.exe" - - ## - # Standard generator factory - - def self.for(options) - new(options) - end - - def initialize(*args) - super - @op_name = @options.op_name || "rdoc" - check_for_html_help_workshop - end - - def check_for_html_help_workshop - stat = File.stat(HHC_PATH) - rescue - $stderr << - "\n.chm output generation requires that Microsoft's Html Help\n" << - "Workshop is installed. RDoc looks for it in:\n\n " << - HHC_PATH << - "\n\nYou can download a copy for free from:\n\n" << - " http://msdn.microsoft.com/library/default.asp?" << - "url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp\n\n" - end - - ## - # Generate the html as normal, then wrap it in a help project - - def generate(info) - super - @project_name = @op_name + ".hhp" - create_help_project - end - - ## - # The project contains the project file, a table of contents and an index - - def create_help_project - create_project_file - create_contents_and_index - compile_project - end - - ## - # The project file links together all the various - # files that go to make up the help. - - def create_project_file - template = RDoc::TemplatePage.new @template::HPP_FILE - values = { "title" => @options.title, "opname" => @op_name } - files = [] - @files.each do |f| - files << { "html_file_name" => f.path } - end - - values['all_html_files'] = files - - File.open(@project_name, "w") do |f| - template.write_html_on(f, values) - end - end - - ## - # The contents is a list of all files and modules. - # For each we include as sub-entries the list - # of methods they contain. As we build the contents - # we also build an index file - - def create_contents_and_index - contents = [] - index = [] - - (@files+@classes).sort.each do |entry| - content_entry = { "c_name" => entry.name, "ref" => entry.path } - index << { "name" => entry.name, "aref" => entry.path } - - internals = [] - - methods = entry.build_method_summary_list(entry.path) - - content_entry["methods"] = methods unless methods.empty? - contents << content_entry - index.concat methods - end - - values = { "contents" => contents } - template = RDoc::TemplatePage.new @template::CONTENTS - File.open("contents.hhc", "w") do |f| - template.write_html_on(f, values) - end - - values = { "index" => index } - template = RDoc::TemplatePage.new @template::CHM_INDEX - File.open("index.hhk", "w") do |f| - template.write_html_on(f, values) - end - end - - ## - # Invoke the windows help compiler to compiler the project - - def compile_project - system(HHC_PATH, @project_name) - end - -end - diff --git a/lib/rdoc/generator/chm/chm.rb b/lib/rdoc/generator/chm/chm.rb deleted file mode 100644 index cceeca5dfc..0000000000 --- a/lib/rdoc/generator/chm/chm.rb +++ /dev/null @@ -1,100 +0,0 @@ -require 'rdoc/generator/chm' -require 'rdoc/generator/html/html' - -module RDoc::Generator::CHM::CHM - - HTML = RDoc::Generator::HTML::HTML - - INDEX = HTML::INDEX - - STYLE = HTML::STYLE - - CLASS_INDEX = HTML::CLASS_INDEX - CLASS_PAGE = HTML::CLASS_PAGE - FILE_INDEX = HTML::FILE_INDEX - FILE_PAGE = HTML::FILE_PAGE - METHOD_INDEX = HTML::METHOD_INDEX - METHOD_LIST = HTML::METHOD_LIST - - FR_INDEX_BODY = HTML::FR_INDEX_BODY - - # This is a nasty little hack, but hhc doesn't support the <?xml tag, so... - BODY = HTML::BODY.sub!(/<\?xml.*\?>/, '') - SRC_PAGE = HTML::SRC_PAGE.sub!(/<\?xml.*\?>/, '') - - HPP_FILE = <<-EOF -[OPTIONS] -Auto Index = Yes -Compatibility=1.1 or later -Compiled file=<%= values["opname"] %>.chm -Contents file=contents.hhc -Full-text search=Yes -Index file=index.hhk -Language=0x409 English(United States) -Title=<%= values["title"] %> - -[FILES] -<% values["all_html_files"].each do |all_html_files| %> -<%= all_html_files["html_file_name"] %> -<% end # values["all_html_files"] %> - EOF - - CONTENTS = <<-EOF -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> -<HTML> -<HEAD> -<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> -<!-- Sitemap 1.0 --> -</HEAD><BODY> -<OBJECT type="text/site properties"> - <param name="Foreground" value="0x80"> - <param name="Window Styles" value="0x800025"> - <param name="ImageType" value="Folder"> -</OBJECT> -<UL> -<% values["contents"].each do |contents| %> - <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="<%= contents["c_name"] %>"> - <param name="Local" value="<%= contents["ref"] %>"> - </OBJECT> -<% if contents["methods"] then %> -<ul> -<% contents["methods"].each do |methods| %> - <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="<%= methods["name"] %>"> - <param name="Local" value="<%= methods["aref"] %>"> - </OBJECT> -<% end # contents["methods"] %> -</ul> -<% end %> - </LI> -<% end # values["contents"] %> -</UL> -</BODY></HTML> - EOF - - CHM_INDEX = <<-EOF -<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> -<HTML> -<HEAD> -<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"> -<!-- Sitemap 1.0 --> -</HEAD><BODY> -<OBJECT type="text/site properties"> - <param name="Foreground" value="0x80"> - <param name="Window Styles" value="0x800025"> - <param name="ImageType" value="Folder"> -</OBJECT> -<UL> -<% values["index"].each do |index| %> - <LI> <OBJECT type="text/sitemap"> - <param name="Name" value="<%= index["name"] %>"> - <param name="Local" value="<%= index["aref"] %>"> - </OBJECT> -<% end # values["index"] %> -</UL> -</BODY></HTML> - EOF - -end - diff --git a/lib/rdoc/generator/html.rb b/lib/rdoc/generator/html.rb deleted file mode 100644 index d136de7b00..0000000000 --- a/lib/rdoc/generator/html.rb +++ /dev/null @@ -1,445 +0,0 @@ -require 'fileutils' - -require 'rdoc/generator' -require 'rdoc/markup/to_html' - -## -# We're responsible for generating all the HTML files from the object tree -# defined in code_objects.rb. We generate: -# -# [files] an html file for each input file given. These -# input files appear as objects of class -# TopLevel -# -# [classes] an html file for each class or module encountered. -# These classes are not grouped by file: if a file -# contains four classes, we'll generate an html -# file for the file itself, and four html files -# for the individual classes. -# -# [indices] we generate three indices for files, classes, -# and methods. These are displayed in a browser -# like window with three index panes across the -# top and the selected description below -# -# Method descriptions appear in whatever entity (file, class, or module) that -# contains them. -# -# We generate files in a structure below a specified subdirectory, normally -# +doc+. -# -# opdir -# | -# |___ files -# | |__ per file summaries -# | -# |___ classes -# |__ per class/module descriptions -# -# HTML is generated using the Template class. - -class RDoc::Generator::HTML - - include RDoc::Generator::MarkUp - - ## - # Generator may need to return specific subclasses depending on the - # options they are passed. Because of this we create them using a factory - - def self.for(options) - RDoc::Generator::AllReferences.reset - RDoc::Generator::Method.reset - - if options.all_one_file - RDoc::Generator::HTMLInOne.new options - else - new options - end - end - - class << self - protected :new - end - - ## - # Set up a new HTML generator. Basically all we do here is load up the - # correct output temlate - - def initialize(options) #:not-new: - @options = options - load_html_template - end - - ## - # Build the initial indices and output objects - # based on an array of TopLevel objects containing - # the extracted information. - - def generate(toplevels) - @toplevels = toplevels - @files = [] - @classes = [] - - write_style_sheet - gen_sub_directories - build_indices - generate_html - end - - private - - ## - # Load up the HTML template specified in the options. - # If the template name contains a slash, use it literally - - def load_html_template - # - # If the template is not a path, first look for it - # in rdoc's HTML template directory. Perhaps this behavior should - # be reversed (first try to include the template and, only if that - # fails, try to include it in the default template directory). - # One danger with reversing the behavior, however, is that - # if something like require 'html' could load up an - # unrelated file in the standard library or in a gem. - # - template = @options.template - - unless template =~ %r{/|\\} then - template = File.join('rdoc', 'generator', @options.generator.key, - template) - end - - begin - require template - - @template = self.class.const_get @options.template.upcase - @options.template_class = @template - rescue LoadError => e - # - # The template did not exist in the default template directory, so - # see if require can find the template elsewhere (in a gem, for - # instance). - # - if(e.message[template] && template != @options.template) - template = @options.template - retry - end - - $stderr.puts "Could not find HTML template '#{template}': #{e.message}" - exit 99 - end - end - - ## - # Write out the style sheet used by the main frames - - def write_style_sheet - return unless @template.constants.include? :STYLE or - @template.constants.include? 'STYLE' - - template = RDoc::TemplatePage.new @template::STYLE - - unless @options.css then - open RDoc::Generator::CSS_NAME, 'w' do |f| - values = {} - - if @template.constants.include? :FONTS or - @template.constants.include? 'FONTS' then - values["fonts"] = @template::FONTS - end - - template.write_html_on(f, values) - end - end - end - - ## - # See the comments at the top for a description of the directory structure - - def gen_sub_directories - FileUtils.mkdir_p RDoc::Generator::FILE_DIR - FileUtils.mkdir_p RDoc::Generator::CLASS_DIR - rescue - $stderr.puts $!.message - exit 1 - end - - def build_indices - @files, @classes = RDoc::Generator::Context.build_indices(@toplevels, - @options) - end - - ## - # Generate all the HTML - - def generate_html - @main_url = main_url - - # the individual descriptions for files and classes - gen_into(@files) - gen_into(@classes) - - # and the index files - gen_file_index - gen_class_index - gen_method_index - gen_main_index - - # this method is defined in the template file - values = { - 'title_suffix' => CGI.escapeHTML("[#{@options.title}]"), - 'charset' => @options.charset, - 'style_url' => style_url('', @options.css), - } - - @template.write_extra_pages(values) if @template.respond_to?(:write_extra_pages) - end - - def gen_into(list) - # - # The file, class, and method lists technically should be regenerated - # for every output file, in order that the relative links be correct - # (we are worried here about frameless templates, which need this - # information for every generated page). Doing this is a bit slow, - # however. For a medium-sized gem, this increased rdoc's runtime by - # about 5% (using the 'time' command-line utility). While this is not - # necessarily a problem, I do not want to pessimize rdoc for large - # projects, however, and so we only regenerate the lists when the - # directory of the output file changes, which seems like a reasonable - # optimization. - # - file_list = {} - class_list = {} - method_list = {} - prev_op_dir = nil - - list.each do |item| - next unless item.document_self - - op_file = item.path - op_dir = File.dirname(op_file) - - if(op_dir != prev_op_dir) - file_list = index_to_links op_file, @files - class_list = index_to_links op_file, @classes - method_list = index_to_links op_file, RDoc::Generator::Method.all_methods - end - prev_op_dir = op_dir - - FileUtils.mkdir_p op_dir - - open op_file, 'w' do |io| - item.write_on io, file_list, class_list, method_list - end - end - end - - def gen_file_index - gen_an_index @files, 'Files', @template::FILE_INDEX, "fr_file_index.html" - end - - def gen_class_index - gen_an_index(@classes, 'Classes', @template::CLASS_INDEX, - "fr_class_index.html") - end - - def gen_method_index - gen_an_index(RDoc::Generator::Method.all_methods, 'Methods', - @template::METHOD_INDEX, "fr_method_index.html") - end - - def gen_an_index(collection, title, template, filename) - template = RDoc::TemplatePage.new @template::FR_INDEX_BODY, template - res = [] - collection.sort.each do |f| - if f.document_self - res << { "href" => f.path, "name" => f.index_name } - end - end - - values = { - "entries" => res, - 'title' => CGI.escapeHTML("#{title} [#{@options.title}]"), - 'list_title' => CGI.escapeHTML(title), - 'index_url' => @main_url, - 'charset' => @options.charset, - 'style_url' => style_url('', @options.css), - } - - open filename, 'w' do |f| - template.write_html_on(f, values) - end - end - - ## - # The main index page is mostly a template frameset, but includes the - # initial page. If the <tt>--main</tt> option was given, we use this as - # our main page, otherwise we use the first file specified on the command - # line. - - def gen_main_index - if @template.const_defined? :FRAMELESS then - # - # If we're using a template without frames, then just redirect - # to it from index.html. - # - # One alternative to this, expanding the main page's template into - # index.html, is tricky because the relative URLs will be different - # (since index.html is located in at the site's root, - # rather than within a files or a classes subdirectory). - # - open 'index.html', 'w' do |f| - f.puts(%{<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">}) - f.puts(%{<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" - lang="en">}) - f.puts(%{<head>}) - f.puts(%{<title>#{CGI.escapeHTML(@options.title)}</title>}) - f.puts(%{<meta http-equiv="refresh" content="0; url=#{@main_url}" />}) - f.puts(%{</head>}) - f.puts(%{<body></body>}) - f.puts(%{</html>}) - end - else - main = RDoc::TemplatePage.new @template::INDEX - - open 'index.html', 'w' do |f| - style_url = style_url '', @options.css - - classes = @classes.sort.map { |klass| klass.value_hash } - - values = { - 'initial_page' => @main_url, - 'style_url' => style_url('', @options.css), - 'title' => CGI.escapeHTML(@options.title), - 'charset' => @options.charset, - 'classes' => classes, - } - - values['inline_source'] = @options.inline_source - - main.write_html_on f, values - end - end - end - - def index_to_links(output_path, collection) - collection.sort.map do |f| - next unless f.document_self - { "href" => RDoc::Markup::ToHtml.gen_relative_url(output_path, f.path), - "name" => f.index_name } - end.compact - end - - ## - # Returns the url of the main page - - def main_url - main_page = @options.main_page - - # - # If a main page has been specified (--main), then search for it - # in the AllReferences array. This allows either files or classes - # to be used for the main page. - # - if main_page then - main_page_ref = RDoc::Generator::AllReferences[main_page] - - if main_page_ref then - return main_page_ref.path - else - $stderr.puts "Could not find main page #{main_page}" - end - end - - # - # No main page has been specified, so just use the README. - # - @files.each do |file| - if file.name =~ /^README/ then - return file.path - end - end - - # - # There's no README (shame! shame!). Just use the first file - # that will be documented. - # - @files.each do |file| - if file.document_self then - return file.path - end - end - - # - # There are no files to be documented... Something seems very wrong. - # - raise RDoc::Error, "Couldn't find anything to document (perhaps :stopdoc: has been used in all classes)!" - end - private :main_url - -end - -class RDoc::Generator::HTMLInOne < RDoc::Generator::HTML - - def initialize(*args) - super - end - - ## - # Build the initial indices and output objects - # based on an array of TopLevel objects containing - # the extracted information. - - def generate(info) - @toplevels = info - @hyperlinks = {} - - build_indices - generate_xml - end - - ## - # Generate: - # - # * a list of RDoc::Generator::File objects for each TopLevel object. - # * a list of RDoc::Generator::Class objects for each first level - # class or module in the TopLevel objects - # * a complete list of all hyperlinkable terms (file, - # class, module, and method names) - - def build_indices - @files, @classes = RDoc::Generator::Context.build_indices(@toplevels, - @options) - end - - ## - # Generate all the HTML. For the one-file case, we generate - # all the information in to one big hash - - def generate_xml - values = { - 'charset' => @options.charset, - 'files' => gen_into(@files), - 'classes' => gen_into(@classes), - 'title' => CGI.escapeHTML(@options.title), - } - - template = RDoc::TemplatePage.new @template::ONE_PAGE - - if @options.op_name - opfile = open @options.op_name, 'w' - else - opfile = $stdout - end - template.write_html_on(opfile, values) - end - - def gen_into(list) - res = [] - list.each do |item| - res << item.value_hash - end - res - end -end diff --git a/lib/rdoc/generator/html/common.rb b/lib/rdoc/generator/html/common.rb deleted file mode 100644 index b25f009a72..0000000000 --- a/lib/rdoc/generator/html/common.rb +++ /dev/null @@ -1,24 +0,0 @@ -# -# The templates require further refactoring. In particular, -# * Some kind of HTML generation library should be used. -# -# Also, all of the templates require some TLC from a designer. -# -# Right now, this file contains some constants that are used by all -# of the templates. -# -module RDoc::Generator::HTML::Common - XHTML_STRICT_PREAMBLE = <<-EOF -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -EOF - - XHTML_FRAME_PREAMBLE = <<-EOF -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" -"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> -EOF - - HTML_ELEMENT = <<-EOF -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -EOF -end diff --git a/lib/rdoc/generator/html/frameless.rb b/lib/rdoc/generator/html/frameless.rb deleted file mode 100644 index 0375fee313..0000000000 --- a/lib/rdoc/generator/html/frameless.rb +++ /dev/null @@ -1,92 +0,0 @@ -require 'rdoc/generator/html/html' - -## -# = 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 visbility of each method's source with each click on the '[source]' -# link. -# -# Frameless basically is the html template without frames. -# -# == Authors -# -# * Michael Granger <ged@FaerieMUD.org> -# -# 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 = RDoc::Generator::HTML::HTML::FONTS - - STYLE = RDoc::Generator::HTML::HTML::STYLE - - HEADER = RDoc::Generator::HTML::HTML::HEADER - - FOOTER = <<-EOF - <div id="popupmenu" class="index"> - <br /> - <h1 class="index-entries section-bar">Files</h1> - <ul> -<% values["file_list"].each do |file| %> - <li><a href="<%= file["href"] %>"><%= file["name"] %></a></li> -<% end %> - </ul> - - <br /> - <h1 class="index-entries section-bar">Classes</h1> - <ul> -<% values["class_list"].each do |klass| %> - <li><a href="<%= klass["href"] %>"><%= klass["name"] %></a></li> -<% end %> - </ul> - - <br /> - <h1 class="index-entries section-bar">Methods</h1> - <ul> -<% values["method_list"].each do |method| %> - <li><a href="<%= method["href"] %>"><%= method["name"] %></a></li> -<% end %> - </ul> - </div> -</body> -</html> - EOF - - FILE_PAGE = RDoc::Generator::HTML::HTML::FILE_PAGE - - CLASS_PAGE = RDoc::Generator::HTML::HTML::CLASS_PAGE - - METHOD_LIST = RDoc::Generator::HTML::HTML::METHOD_LIST - - BODY = HEADER + %{ - -<%= template_include %> <!-- banner header --> - - <div id="bodyContent"> - -} + METHOD_LIST + %{ - - </div> - -} + FOOTER - - SRC_PAGE = RDoc::Generator::HTML::HTML::SRC_PAGE - - FR_INDEX_BODY = RDoc::Generator::HTML::HTML::FR_INDEX_BODY - - FILE_INDEX = RDoc::Generator::HTML::HTML::FILE_INDEX - - CLASS_INDEX = RDoc::Generator::HTML::HTML::CLASS_INDEX - - METHOD_INDEX = RDoc::Generator::HTML::HTML::METHOD_INDEX -end diff --git a/lib/rdoc/generator/html/hefss.rb b/lib/rdoc/generator/html/hefss.rb deleted file mode 100644 index 540c23d869..0000000000 --- a/lib/rdoc/generator/html/hefss.rb +++ /dev/null @@ -1,150 +0,0 @@ -require 'rdoc/generator/html' -require 'rdoc/generator/html/kilmerfactory' - -module RDoc::Generator::HTML::HEFSS - - FONTS = "Verdana, Arial, Helvetica, sans-serif" - - CENTRAL_STYLE = <<-EOF -body,p { font-family: <%= values["fonts"] %>; - color: #000040; background: #BBBBBB; -} - -td { font-family: <%= values["fonts"] %>; - color: #000040; -} - -.attr-rw { font-size: small; color: #444488 } - -.title-row {color: #eeeeff; - background: #BBBBDD; -} - -.big-title-font { color: white; - font-family: <%= values["fonts"] %>; - font-size: large; - height: 50px} - -.small-title-font { color: purple; - font-family: <%= values["fonts"] %>; - font-size: small; } - -.aqua { color: purple } - -#diagram img { - border: 0; -} - -.method-name, attr-name { - font-family: monospace; font-weight: bold; -} - -.tablesubtitle { - width: 100%; - margin-top: 1ex; - margin-bottom: .5ex; - padding: 5px 0px 5px 20px; - font-size: large; - color: purple; - background: #BBBBCC; -} - -.tablesubsubtitle { - width: 100%; - margin-top: 1ex; - margin-bottom: .5ex; - padding: 5px 0px 5px 20px; - font-size: medium; - color: white; - background: #BBBBCC; -} - -.name-list { - font-family: monospace; - margin-left: 40px; - margin-bottom: 2ex; - line-height: 140%; -} - -.description { - margin-left: 40px; - margin-bottom: 2ex; - line-height: 140%; -} - -.methodtitle { - font-size: medium; - text_decoration: none; - padding: 3px 3px 3px 20px; - color: #0000AA; -} - -.ruby-comment { color: green; font-style: italic } -.ruby-constant { color: #4433aa; font-weight: bold; } -.ruby-identifier { color: #222222; } -.ruby-ivar { color: #2233dd; } -.ruby-keyword { color: #3333FF; font-weight: bold } -.ruby-node { color: #777777; } -.ruby-operator { color: #111111; } -.ruby-regexp { color: #662222; } -.ruby-value { color: #662222; font-style: italic } - -.srcbut { float: right } - EOF - - INDEX_STYLE = <<-EOF -body { - background-color: #bbbbbb; - font-family: #{FONTS}; - font-size: 11px; - font-style: normal; - line-height: 14px; - color: #000040; -} - -div.banner { - background: #bbbbcc; - color: white; - padding: 1; - margin: 0; - font-size: 90%; - font-weight: bold; - line-height: 1.1; - text-align: center; - width: 100%; -} -EOF - - FACTORY = RDoc::Generator::HTML:: - KilmerFactory.new(:central_css => CENTRAL_STYLE, - :index_css => INDEX_STYLE, - :method_list_heading => "Subroutines and Functions", - :class_and_module_list_heading => "Classes and Modules", - :attribute_list_heading => "Arguments") - - STYLE = FACTORY.get_STYLE() - - METHOD_LIST = FACTORY.get_METHOD_LIST() - - BODY = FACTORY.get_BODY() - - FILE_PAGE = FACTORY.get_FILE_PAGE() - - CLASS_PAGE = FACTORY.get_CLASS_PAGE() - - SRC_PAGE = FACTORY.get_SRC_PAGE() - - FR_INDEX_BODY = FACTORY.get_FR_INDEX_BODY() - - FILE_INDEX = FACTORY.get_FILE_INDEX() - - CLASS_INDEX = FACTORY.get_CLASS_INDEX() - - METHOD_INDEX = FACTORY.get_METHOD_INDEX() - - INDEX = FACTORY.get_INDEX() - - def self.write_extra_pages(values) - FACTORY.write_extra_pages(values) - end -end diff --git a/lib/rdoc/generator/html/html.rb b/lib/rdoc/generator/html/html.rb deleted file mode 100644 index 823d8056e7..0000000000 --- a/lib/rdoc/generator/html/html.rb +++ /dev/null @@ -1,769 +0,0 @@ -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 <ged@FaerieMUD.org> -# -# 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 -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> - <meta http-equiv="Content-Script-Type" content="text/javascript" /> - <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> - <script type="text/javascript"> - // <![CDATA[ - - function popupCode( url ) { - window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400") - } - - function toggleCode( id ) { - if ( document.getElementById ) - elem = document.getElementById( id ); - else if ( document.all ) - elem = eval( "document.all." + id ); - else - return false; - - elemStyle = elem.style; - - if ( elemStyle.display != "block" ) { - elemStyle.display = "block" - } else { - elemStyle.display = "none" - } - - return true; - } - - // Make codeblocks hidden by default - document.writeln( "<style type=\\"text/css\\">div.method-source-code { display: none }<\\/style>" ) - - // ]]> - </script> - -</head> -<body> -EOF - -##################################################################### -### F O O T E R T E M P L A T E -##################################################################### - - FOOTER = <<-EOF -<div id="validator-badges"> - <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> -</div> - -</body> -</html> - 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 - <div id="fileHeader"> - <h1><%= values["short_name"] %></h1> - <table class="header-table"> - <tr class="top-aligned-row"> - <td><strong>Path:</strong></td> - <td><%= values["full_path"] %> -<% if values["cvsurl"] then %> - (<a href="<%= values["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) -<% end %> - </td> - </tr> - <tr class="top-aligned-row"> - <td><strong>Last Update:</strong></td> - <td><%= values["dtm_modified"] %></td> - </tr> - </table> - </div> - 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 - <div id="classHeader"> - <table class="header-table"> - <tr class="top-aligned-row"> - <td><strong><%= values["classmod"] %></strong></td> - <td class="class-name-in-header"><%= values["full_name"] %></td> - </tr> - <tr class="top-aligned-row"> - <td><strong>In:</strong></td> - <td> -<% values["infiles"].each do |infiles| %> -<% if infiles["full_path_url"] then %> - <a href="<%= infiles["full_path_url"] %>"> -<% end %> - <%= infiles["full_path"] %> -<% if infiles["full_path_url"] then %> - </a> -<% end %> -<% if infiles["cvsurl"] then %> - (<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) -<% end %> - <br /> -<% end %><%# values["infiles"] %> - </td> - </tr> - -<% if values["parent"] then %> - <tr class="top-aligned-row"> - <td><strong>Parent:</strong></td> - <td> -<% if values["par_url"] then %> - <a href="<%= values["par_url"] %>"> -<% end %> - <%= values["parent"] %> -<% if values["par_url"] then %> - </a> -<% end %> - </td> - </tr> -<% end %> - </table> - </div> - EOF - -##################################################################### -### M E T H O D L I S T T E M P L A T E -##################################################################### - - METHOD_LIST = <<-EOF - <div id="contextContent"> -<% if values["diagram"] then %> - <div id="diagram"> - <%= values["diagram"] %> - </div> -<% end - - if values["description"] then %> - <div id="description"> - <%= values["description"] %> - </div> -<% end - - if values["requires"] then %> - <div id="requires-list"> - <h3 class="section-bar">Required files</h3> - - <div class="name-list"> -<% values["requires"].each do |requires| %> - <%= href requires["aref"], requires["name"] %> -<% end %><%# values["requires"] %> - </div> - </div> -<% end - - if values["toc"] then %> - <div id="contents-list"> - <h3 class="section-bar">Contents</h3> - <ul> -<% values["toc"].each do |toc| %> - <li><a href="#<%= toc["href"] %>"><%= toc["secname"] %></a></li> -<% end %><%# values["toc"] %> - </ul> -<% end %> - </div> - -<% if values["methods"] then %> - <div id="method-list"> - <h3 class="section-bar">Methods</h3> - - <div class="name-list"> -<% values["methods"].each do |methods| %> - <%= href methods["aref"], methods["name"] %> -<% end %><%# values["methods"] %> - </div> - </div> -<% end %> - </div> - - <!-- if includes --> -<% if values["includes"] then %> - <div id="includes"> - <h3 class="section-bar">Included Modules</h3> - - <div id="includes-list"> -<% values["includes"].each do |includes| %> - <span class="include-name"><%= href includes["aref"], includes["name"] %></span> -<% end %><%# values["includes"] %> - </div> - </div> -<% end - - values["sections"].each do |sections| %> - <div id="section"> -<% if sections["sectitle"] then %> - <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2> -<% if sections["seccomment"] then %> - <div class="section-comment"> - <%= sections["seccomment"] %> - </div> -<% end - end - - if sections["classlist"] then %> - <div id="class-list"> - <h3 class="section-bar">Classes and Modules</h3> - - <%= sections["classlist"] %> - </div> -<% end - - if sections["constants"] then %> - <div id="constants-list"> - <h3 class="section-bar">Constants</h3> - - <div class="name-list"> - <table summary="Constants"> -<% sections["constants"].each do |constants| %> - <tr class="top-aligned-row context-row"> - <td class="context-item-name"><%= constants["name"] %></td> - <td>=</td> - <td class="context-item-value"><%= constants["value"] %></td> -<% if constants["desc"] then %> - <td> </td> - <td class="context-item-desc"><%= constants["desc"] %></td> -<% end %> - </tr> -<% end %><%# sections["constants"] %> - </table> - </div> - </div> -<% end - - if sections["aliases"] then %> - <div id="aliases-list"> - <h3 class="section-bar">External Aliases</h3> - - <div class="name-list"> - <table summary="aliases"> -<% sections["aliases"].each do |aliases| %> - <tr class="top-aligned-row context-row"> - <td class="context-item-name"><%= aliases["old_name"] %></td> - <td>-></td> - <td class="context-item-value"><%= aliases["new_name"] %></td> - </tr> -<% if aliases["desc"] then %> - <tr class="top-aligned-row context-row"> - <td> </td> - <td colspan="2" class="context-item-desc"><%= aliases["desc"] %></td> - </tr> -<% end - end %><%# sections["aliases"] %> - </table> - </div> - </div> -<% end %> - -<% if sections["attributes"] then %> - <div id="attribute-list"> - <h3 class="section-bar">Attributes</h3> - - <div class="name-list"> - <table> -<% sections["attributes"].each do |attribute| %> - <tr class="top-aligned-row context-row"> - <td class="context-item-name"><%= attribute["name"] %></td> -<% if attribute["rw"] then %> - <td class="context-item-value"> [<%= attribute["rw"] %>] </td> -<% end - unless attribute["rw"] then %> - <td class="context-item-value"> </td> -<% end %> - <td class="context-item-desc"><%= attribute["a_desc"] %></td> - </tr> -<% end %><%# sections["attributes"] %> - </table> - </div> - </div> -<% end %> - - <!-- if method_list --> -<% if sections["method_list"] then %> - <div id="methods"> -<% sections["method_list"].each do |method_list| - if method_list["methods"] then %> - <h3 class="section-bar"><%= method_list["type"] %> <%= method_list["category"] %> methods</h3> - -<% method_list["methods"].each do |methods| %> - <div id="method-<%= methods["aref"] %>" class="method-detail"> - <a name="<%= methods["aref"] %>"></a> - - <div class="method-heading"> -<% if methods["codeurl"] then %> - <a href="<%= methods["codeurl"] %>" target="Code" class="method-signature" - onclick="popupCode('<%= methods["codeurl"] %>');return false;"> -<% end - if methods["sourcecode"] then %> - <a href="#<%= methods["aref"] %>" class="method-signature"> -<% end - if methods["callseq"] then %> - <span class="method-name"><%= methods["callseq"] %></span> -<% end - unless methods["callseq"] then %> - <span class="method-name"><%= methods["name"] %></span><span class="method-args"><%= methods["params"] %></span> -<% end - if methods["codeurl"] then %> - </a> -<% end - if methods["sourcecode"] then %> - </a> -<% end %> - </div> - - <div class="method-description"> -<% if methods["m_desc"] then %> - <%= methods["m_desc"] %> -<% end - if methods["sourcecode"] then %> - <p><a class="source-toggle" href="#" - onclick="toggleCode('<%= methods["aref"] %>-source');return false;">[Source]</a></p> - <div class="method-source-code" id="<%= methods["aref"] %>-source"> -<pre> -<%= methods["sourcecode"] %> -</pre> - </div> -<% end %> - </div> - </div> - -<% end %><%# method_list["methods"] %><% - end - end %><%# sections["method_list"] %> - - </div> -<% end %> -<% end %><%# values["sections"] %> - EOF - -##################################################################### -### B O D Y T E M P L A T E -##################################################################### - - BODY = HEADER + %{ - -<%= template_include %> <!-- banner header --> - - <div id="bodyContent"> - -} + METHOD_LIST + %{ - - </div> - -} + 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 -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> - <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> -</head> -<body class="standalone-code"> - <pre><%= values["code"] %></pre> -</body> -</html> - 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"] %> - - --> -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> - <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" /> - <base target="docwin" /> -</head> -<body> -<div class="index"> - <h1 class="section-bar"><%= values["list_title"] %></h1> - <div id="index-entries"> -<% values["entries"].each do |entries| %> - <a href="<%= entries["href"] %>"><%= entries["name"] %></a><br /> -<% end %><%# values["entries"] %> - </div> -</div> -</body> -</html> - EOF - - CLASS_INDEX = FILE_INDEX - METHOD_INDEX = FILE_INDEX - - INDEX = XHTML_FRAME_PREAMBLE + HTML_ELEMENT + <<-EOF -<!-- - - <%= values["title"] %> - - --> -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> -</head> -<frameset rows="20%, 80%"> - <frameset cols="25%,35%,45%"> - <frame src="fr_file_index.html" title="Files" name="Files" /> - <frame src="fr_class_index.html" name="Classes" /> - <frame src="fr_method_index.html" name="Methods" /> - </frameset> - <frame src="<%= values["initial_page"] %>" name="docwin" /> -</frameset> -</html> - EOF - -end - diff --git a/lib/rdoc/generator/html/kilmer.rb b/lib/rdoc/generator/html/kilmer.rb deleted file mode 100644 index 4c5a9ee8b0..0000000000 --- a/lib/rdoc/generator/html/kilmer.rb +++ /dev/null @@ -1,151 +0,0 @@ -require 'rdoc/generator/html' -require 'rdoc/generator/html/kilmerfactory' - -module RDoc::Generator::HTML::KILMER - - FONTS = "Verdana, Arial, Helvetica, sans-serif" - - CENTRAL_STYLE = <<-EOF -body,td,p { font-family: <%= values["fonts"] %>; - color: #000040; -} - -.attr-rw { font-size: xx-small; color: #444488 } - -.title-row { background-color: #CCCCFF; - color: #000010; -} - -.big-title-font { - color: black; - font-weight: bold; - font-family: <%= values["fonts"] %>; - font-size: large; - height: 60px; - padding: 10px 3px 10px 3px; -} - -.small-title-font { color: black; - font-family: <%= values["fonts"] %>; - font-size:10; } - -.aqua { color: black } - -#diagram img { - border: 0; -} - -.method-name, .attr-name { - font-family: font-family: <%= values["fonts"] %>; - font-weight: bold; - font-size: small; - margin-left: 20px; - color: #000033; -} - -.tablesubtitle, .tablesubsubtitle { - width: 100%; - margin-top: 1ex; - margin-bottom: .5ex; - padding: 5px 0px 5px 3px; - font-size: large; - color: black; - background-color: #CCCCFF; - border: thin; -} - -.name-list { - margin-left: 5px; - margin-bottom: 2ex; - line-height: 105%; -} - -.description { - margin-left: 5px; - margin-bottom: 2ex; - line-height: 105%; - font-size: small; -} - -.methodtitle { - font-size: small; - font-weight: bold; - text-decoration: none; - color: #000033; - background: #ccc; -} - -.srclink { - font-size: small; - font-weight: bold; - text-decoration: none; - color: #0000DD; - background-color: white; -} - -.srcbut { float: right } - -.ruby-comment { color: green; font-style: italic } -.ruby-constant { color: #4433aa; font-weight: bold; } -.ruby-identifier { color: #222222; } -.ruby-ivar { color: #2233dd; } -.ruby-keyword { color: #3333FF; font-weight: bold } -.ruby-node { color: #777777; } -.ruby-operator { color: #111111; } -.ruby-regexp { color: #662222; } -.ruby-value { color: #662222; font-style: italic } - EOF - - INDEX_STYLE = <<-EOF -body { - background-color: #ddddff; - font-family: #{FONTS}; - font-size: 11px; - font-style: normal; - line-height: 14px; - color: #000040; -} - -div.banner { - background: #0000aa; - color: white; - padding: 1; - margin: 0; - font-size: 90%; - font-weight: bold; - line-height: 1.1; - text-align: center; - width: 100%; -} -EOF - - FACTORY = RDoc::Generator::HTML:: - KilmerFactory.new(:central_css => CENTRAL_STYLE, - :index_css => INDEX_STYLE) - - STYLE = FACTORY.get_STYLE() - - METHOD_LIST = FACTORY.get_METHOD_LIST() - - BODY = FACTORY.get_BODY() - - FILE_PAGE = FACTORY.get_FILE_PAGE() - - CLASS_PAGE = FACTORY.get_CLASS_PAGE() - - SRC_PAGE = FACTORY.get_SRC_PAGE() - - FR_INDEX_BODY = FACTORY.get_FR_INDEX_BODY() - - FILE_INDEX = FACTORY.get_FILE_INDEX() - - CLASS_INDEX = FACTORY.get_CLASS_INDEX() - - METHOD_INDEX = FACTORY.get_METHOD_INDEX() - - INDEX = FACTORY.get_INDEX() - - def self.write_extra_pages(values) - FACTORY.write_extra_pages(values) - end -end diff --git a/lib/rdoc/generator/html/kilmerfactory.rb b/lib/rdoc/generator/html/kilmerfactory.rb deleted file mode 100644 index ef6f3f3b4d..0000000000 --- a/lib/rdoc/generator/html/kilmerfactory.rb +++ /dev/null @@ -1,427 +0,0 @@ -require 'rdoc/generator/html' -require 'rdoc/generator/html/common' - -# -# This class generates Kilmer-style templates. Right now, -# rdoc is shipped with two such templates: -# * kilmer -# * hefss -# -# Kilmer-style templates use frames. The left side of the page has -# three frames stacked on top of each other: one lists -# files, one lists classes, and one lists methods. If source code -# is not inlined, an additional frame runs across the bottom of -# the page and will be used to display method source code. -# The central (and largest frame) display class and file -# pages. -# -# The constructor of this class accepts a Hash containing stylistic -# attributes. Then, a get_BLAH instance method of this class returns a -# value for the template's BLAH constant. get_BODY, for instance, returns -# the value of the template's BODY constant. -# -class RDoc::Generator::HTML::KilmerFactory - - include RDoc::Generator::HTML::Common - - # - # The contents of the stylesheet that should be used for the - # central frame (for the class and file pages). - # - # This must be specified in the Hash passed to the constructor. - # - attr_reader :central_css - - # - # The contents of the stylesheet that should be used for the - # index pages. - # - # This must be specified in the Hash passed to the constructor. - # - attr_reader :index_css - - # - # The heading that should be displayed before listing methods. - # - # If not supplied, this defaults to "Methods". - # - attr_reader :method_list_heading - - # - # The heading that should be displayed before listing classes and - # modules. - # - # If not supplied, this defaults to "Classes and Modules". - # - attr_reader :class_and_module_list_heading - - # - # The heading that should be displayed before listing attributes. - # - # If not supplied, this defaults to "Attributes". - # - attr_reader :attribute_list_heading - - # - # ====Description: - # This method constructs a KilmerFactory instance, which - # can be used to build Kilmer-style template classes. - # The +style_attributes+ argument is a Hash that contains the - # values of the classes attributes (Symbols mapped to Strings). - # - # ====Parameters: - # [style_attributes] - # A Hash describing the appearance of the Kilmer-style. - # - def initialize(style_attributes) - @central_css = style_attributes[:central_css] - if(!@central_css) - raise ArgumentError, "did not specify a value for :central_css" - end - - @index_css = style_attributes[:index_css] - if(!@index_css) - raise ArgumentError, "did not specify a value for :index_css" - end - - @method_list_heading = style_attributes[:method_list_heading] - if(!@method_list_heading) - @method_list_heading = "Methods" - end - - @class_and_module_list_heading = style_attributes[:class_and_module_list_heading] - if(!@class_and_module_list_heading) - @class_and_module_list_heading = "Classes and Modules" - end - - @attribute_list_heading = style_attributes[:attribute_list_heading] - if(!@attribute_list_heading) - @attribute_list_heading = "Attributes" - end - end - - def get_STYLE - return @central_css - end - - def get_METHOD_LIST - return %{ -<% if values["diagram"] then %> -<div id="diagram"> -<table width="100%"><tr><td align="center"> -<%= values["diagram"] %> -</td></tr></table> -</div> -<% end %> - -<% if values["description"] then %> -<div class="description"><%= values["description"] %></div> -<% end %> - -<% if values["requires"] then %> -<table cellpadding="5" width="100%"> -<tr><td class="tablesubtitle">Required files</td></tr> -</table><br /> -<div class="name-list"> -<% values["requires"].each do |requires| %> -<%= href requires["aref"], requires["name"] %> -<% end %><%# values["requires"] %> -</div> -<% end %> - -<% if values["methods"] then %> -<table cellpadding="5" width="100%"> -<tr><td class="tablesubtitle">#{@method_list_heading}</td></tr> -</table><br /> -<div class="name-list"> -<% values["methods"].each do |methods| %> -<%= href methods["aref"], methods["name"] %>, -<% end %><%# values["methods"] %> -</div> -<% end %> - -<% if values["includes"] then %> -<div class="tablesubsubtitle">Included modules</div><br /> -<div class="name-list"> -<% values["includes"].each do |includes| %> - <span class="method-name"><%= href includes["aref"], includes["name"] %></span> -<% end %><%# values["includes"] %> -</div> -<% end %> - -<% values["sections"].each do |sections| %> - <div id="section"> -<% if sections["sectitle"] then %> - <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2> -<% if sections["seccomment"] then %> - <div class="section-comment"> - <%= sections["seccomment"] %> - </div> -<% end %> -<% end %> -<% if sections["attributes"] then %> -<table cellpadding="5" width="100%"> -<tr><td class="tablesubtitle">#{@attribute_list_heading}</td></tr> -</table><br /> -<table cellspacing="5"> -<% sections["attributes"].each do |attributes| %> - <tr valign="top"> -<% if attributes["rw"] then %> - <td align="center" class="attr-rw"> [<%= attributes["rw"] %>] </td> -<% end %> -<% unless attributes["rw"] then %> - <td></td> -<% end %> - <td class="attr-name"><%= attributes["name"] %></td> - <td><%= attributes["a_desc"] %></td> - </tr> -<% end %><%# sections["attributes"] %> -</table> -<% end %> - -<% if sections["classlist"] then %> -<table cellpadding="5" width="100%"> -<tr><td class="tablesubtitle">#{@class_and_module_list_heading}</td></tr> -</table><br /> -<%= sections["classlist"] %><br /> -<% end %> - -<% if sections["method_list"] then %> -<% sections["method_list"].each do |method_list| %> -<% if method_list["methods"] then %> -<table cellpadding="5" width="100%"> -<tr><td class="tablesubtitle"><%= method_list["type"] %> <%= method_list["category"] %> methods</td></tr> -</table> -<% method_list["methods"].each do |methods| %> -<table width="100%" cellspacing="0" cellpadding="5" border="0"> -<tr><td class="methodtitle"> -<a name="<%= methods["aref"] %>"> -<% if methods["callseq"] then %> -<b><%= methods["callseq"] %></b> -<% end %> -<% unless methods["callseq"] then %> - <b><%= methods["name"] %></b><%= methods["params"] %> -<% end %> -</a> -<% if methods["codeurl"] then %> -<a href="<%= methods["codeurl"] %>" target="source" class="srclink">src</a> -<% end %> -</td></tr> -</table> -<% if methods["m_desc"] then %> -<div class="description"> -<%= methods["m_desc"] %> -</div> -<% end %> -<% if methods["aka"] then %> -<div class="aka"> -This method is also aliased as -<% methods["aka"].each do |aka| %> -<a href="<%= methods["aref"] %>"><%= methods["name"] %></a> -<% end %><%# methods["aka"] %> -</div> -<% end %> -<% if methods["sourcecode"] then %> -<pre class="source"> -<%= methods["sourcecode"] %> -</pre> -<% end %> -<% end %><%# method_list["methods"] %> -<% end %> -<% end %><%# sections["method_list"] %> -<% end %> - -<% end %><%# values["sections"] %> -</div> -} - end - - def get_BODY - return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> - <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> - <script type="text/javascript"> - <!-- - function popCode(url) { - parent.frames.source.location = url - } - //--> - </script> -</head> -<body> -<div class="bodyContent"> -<%= template_include %> <!-- banner header --> - -#{get_METHOD_LIST()} -</div> -</body> -</html> -} - end - -def get_FILE_PAGE - return %{ -<table width="100%"> - <tr class="title-row"> - <td><table width="100%"><tr> - <td class="big-title-font" colspan="2">File<br /><%= values["short_name"] %></td> - <td align="right"><table cellspacing="0" cellpadding="2"> - <tr> - <td class="small-title-font">Path:</td> - <td class="small-title-font"><%= values["full_path"] %> -<% if values["cvsurl"] then %> - (<a href="<%= values["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) -<% end %> - </td> - </tr> - <tr> - <td class="small-title-font">Modified:</td> - <td class="small-title-font"><%= values["dtm_modified"] %></td> - </tr> - </table> - </td></tr></table></td> - </tr> -</table><br /> -} -end - -def get_CLASS_PAGE - return %{ -<table width="100%" border="0" cellspacing="0"> - <tr class="title-row"> - <td class="big-title-font"> - <%= values["classmod"] %><br /><%= values["full_name"] %> - </td> - <td align="right"> - <table cellspacing="0" cellpadding="2"> - <tr valign="top"> - <td class="small-title-font">In:</td> - <td class="small-title-font"> -<% values["infiles"].each do |infiles| %> -<%= href infiles["full_path_url"], infiles["full_path"] %> -<% if infiles["cvsurl"] then %> - (<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>) -<% end %> -<% end %><%# values["infiles"] %> - </td> - </tr> -<% if values["parent"] then %> - <tr> - <td class="small-title-font">Parent:</td> - <td class="small-title-font"> -<% if values["par_url"] then %> - <a href="<%= values["par_url"] %>" class="cyan"> -<% end %> -<%= values["parent"] %> -<% if values["par_url"] then %> - </a> -<% end %> - </td> - </tr> -<% end %> - </table> - </td> - </tr> -</table><br /> -} -end - -def get_SRC_PAGE - return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ -<head><title><%= values["title"] %></title> -<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> -<link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> -</head> -<body> -<pre><%= values["code"] %></pre> -</body> -</html> -} -end - -def get_FR_INDEX_BODY - return %{<%= template_include %>} -end - -def get_FILE_INDEX - return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ -<head> -<title><%= values["title"] %></title> -<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> -<style type="text/css"> -<!-- -#{@index_css} ---> -</style> -<base target="docwin" /> -</head> -<body> -<div class="index"> -<div class="banner"><%= values["list_title"] %></div> -<% values["entries"].each do |entries| %> -<a href="<%= entries["href"] %>"><%= entries["name"] %></a><br /> -<% end %><%# values["entries"] %> -</div> -</body></html> -} -end - -def get_CLASS_INDEX - return get_FILE_INDEX -end - -def get_METHOD_INDEX - return get_FILE_INDEX -end - -def get_INDEX - return XHTML_FRAME_PREAMBLE + HTML_ELEMENT + %{ -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> -</head> - -<frameset cols="20%,*"> - <frameset rows="15%,35%,50%"> - <frame src="fr_file_index.html" title="Files" name="Files" /> - <frame src="fr_class_index.html" name="Classes" /> - <frame src="fr_method_index.html" name="Methods" /> - </frameset> -<% if values["inline_source"] then %> - <frame src="<%= values["initial_page"] %>" name="docwin" /> -<% end %> -<% unless values["inline_source"] then %> - <frameset rows="80%,20%"> - <frame src="<%= values["initial_page"] %>" name="docwin" /> - <frame src="blank.html" name="source" /> - </frameset> -<% end %> -</frameset> - -</html> -} -end - -def get_BLANK - # This will be displayed in the source code frame before - # any source code has been selected. - return XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ -<head> - <title>Source Code Frame <%= values["title_suffix"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> - <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" /> -</head> -<body> -</body> -</html> -} -end - -def write_extra_pages(values) - template = RDoc::TemplatePage.new(get_BLANK()) - File.open("blank.html", "w") { |f| template.write_html_on(f, values) } -end - -end diff --git a/lib/rdoc/generator/html/one_page_html.rb b/lib/rdoc/generator/html/one_page_html.rb deleted file mode 100644 index 51ae32351a..0000000000 --- a/lib/rdoc/generator/html/one_page_html.rb +++ /dev/null @@ -1,122 +0,0 @@ -require 'rdoc/generator/html' -require 'rdoc/generator/html/common' - -module RDoc::Generator::HTML::ONE_PAGE_HTML - - include RDoc::Generator::HTML::Common - - CONTENTS_XML = <<-EOF -<% if defined? classes and classes["description"] then %> -<%= classes["description"] %> -<% end %> - -<% if defined? files and files["requires"] then %> -<h4>Requires:</h4> -<ul> -<% files["requires"].each do |requires| %> -<% if requires["aref"] then %> -<li><a href="<%= requires["aref"] %>"><%= requires["name"] %></a></li> -<% end %> -<% unless requires["aref"] then %> -<li><%= requires["name"] %></li> -<% end %> -<% end %><%# files["requires"] %> -</ul> -<% end %> - -<% if defined? classes and classes["includes"] then %> -<h4>Includes</h4> -<ul> -<% classes["includes"].each do |includes| %> -<% if includes["aref"] then %> -<li><a href="<%= includes["aref"] %>"><%= includes["name"] %></a></li> -<% end %> -<% unless includes["aref"] then %> -<li><%= includes["name"] %></li> -<% end %> -<% end %><%# classes["includes"] %> -</ul> -<% end %> - -<% if defined? classes and classes["sections"] then %> -<% classes["sections"].each do |sections| %> -<% if sections["attributes"] then %> -<h4>Attributes</h4> -<table> -<% sections["attributes"].each do |attributes| %> -<tr><td><%= attributes["name"] %></td><td><%= attributes["rw"] %></td><td><%= attributes["a_desc"] %></td></tr> -<% end %><%# sections["attributes"] %> -</table> -<% end %> - -<% if sections["method_list"] then %> -<h3>Methods</h3> -<% sections["method_list"].each do |method_list| %> -<% if method_list["methods"] then %> -<% method_list["methods"].each do |methods| %> -<h4><%= methods["type"] %> <%= methods["category"] %> method: -<% if methods["callseq"] then %> -<a name="<%= methods["aref"] %>"><%= methods["callseq"] %></a> -<% end %> -<% unless methods["callseq"] then %> -<a name="<%= methods["aref"] %>"><%= methods["name"] %><%= methods["params"] %></a></h4> -<% end %> - -<% if methods["m_desc"] then %> -<%= methods["m_desc"] %> -<% end %> - -<% if methods["sourcecode"] then %> -<blockquote><pre> -<%= methods["sourcecode"] %> -</pre></blockquote> -<% end %> -<% end %><%# method_list["methods"] %> -<% end %> -<% end %><%# sections["method_list"] %> -<% end %> -<% end %><%# classes["sections"] %> -<% end %> - EOF - - ONE_PAGE = XHTML_STRICT_PREAMBLE + HTML_ELEMENT + %{ -<head> - <title><%= values["title"] %></title> - <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" /> -</head> -<body> -<% values["files"].each do |files| %> -<h2>File: <a name="<%= files["href"] %>"><%= files["short_name"] %></a></h2> -<table> - <tr><td>Path:</td><td><%= files["full_path"] %></td></tr> - <tr><td>Modified:</td><td><%= files["dtm_modified"] %></td></tr> -</table> -} + CONTENTS_XML + %{ -<% end %><%# values["files"] %> - -<% if values["classes"] then %> -<h2>Classes</h2> -<% values["classes"].each do |classes| %> -<% if classes["parent"] then %> -<h3><%= classes["classmod"] %> <a name="<%= classes["href"] %>"><%= classes["full_name"] %></a> < <%= href classes["par_url"], classes["parent"] %></h3> -<% end %> -<% unless classes["parent"] then %> -<h3><%= classes["classmod"] %> <%= classes["full_name"] %></h3> -<% end %> - -<% if classes["infiles"] then %> -(in files -<% classes["infiles"].each do |infiles| %> -<%= href infiles["full_path_url"], infiles["full_path"] %> -<% end %><%# classes["infiles"] %> -) -<% end %> -} + CONTENTS_XML + %{ -<% end %><%# values["classes"] %> -<% end %> -</body> -</html> -} - -end - diff --git a/lib/rdoc/generator/ri.rb b/lib/rdoc/generator/ri.rb deleted file mode 100644 index 6b7a5932f8..0000000000 --- a/lib/rdoc/generator/ri.rb +++ /dev/null @@ -1,226 +0,0 @@ -require 'rdoc/generator' -require 'rdoc/markup/to_flow' - -require 'rdoc/ri/cache' -require 'rdoc/ri/reader' -require 'rdoc/ri/writer' -require 'rdoc/ri/descriptions' - -class RDoc::Generator::RI - - ## - # Generator may need to return specific subclasses depending on the - # options they are passed. Because of this we create them using a factory - - def self.for(options) - new(options) - end - - ## - # Set up a new ri generator - - def initialize(options) #:not-new: - @options = options - @ri_writer = RDoc::RI::Writer.new "." - @markup = RDoc::Markup.new - @to_flow = RDoc::Markup::ToFlow.new - - @generated = {} - end - - ## - # Build the initial indices and output objects based on an array of - # TopLevel objects containing the extracted information. - - def generate(toplevels) - RDoc::TopLevel.all_classes_and_modules.each do |cls| - process_class cls - end - end - - def process_class(from_class) - generate_class_info(from_class) - - # now recurse into this class' constituent classes - from_class.each_classmodule do |mod| - process_class(mod) - end - end - - def generate_class_info(cls) - case cls - when RDoc::NormalModule then - cls_desc = RDoc::RI::ModuleDescription.new - else - cls_desc = RDoc::RI::ClassDescription.new - cls_desc.superclass = cls.superclass - end - - cls_desc.name = cls.name - cls_desc.full_name = cls.full_name - cls_desc.comment = markup(cls.comment) - - cls_desc.attributes = cls.attributes.sort.map do |a| - RDoc::RI::Attribute.new(a.name, a.rw, markup(a.comment)) - end - - cls_desc.constants = cls.constants.map do |c| - RDoc::RI::Constant.new(c.name, c.value, markup(c.comment)) - end - - cls_desc.includes = cls.includes.map do |i| - RDoc::RI::IncludedModule.new(i.name) - end - - class_methods, instance_methods = method_list(cls) - - cls_desc.class_methods = class_methods.map do |m| - RDoc::RI::MethodSummary.new(m.name) - end - - cls_desc.instance_methods = instance_methods.map do |m| - RDoc::RI::MethodSummary.new(m.name) - end - - update_or_replace(cls_desc) - - class_methods.each do |m| - generate_method_info(cls_desc, m) - end - - instance_methods.each do |m| - generate_method_info(cls_desc, m) - end - end - - def generate_method_info(cls_desc, method) - meth_desc = RDoc::RI::MethodDescription.new - meth_desc.name = method.name - meth_desc.full_name = cls_desc.full_name - if method.singleton - meth_desc.full_name += "::" - else - meth_desc.full_name += "#" - end - meth_desc.full_name << method.name - - meth_desc.comment = markup(method.comment) - meth_desc.params = params_of(method) - meth_desc.visibility = method.visibility.to_s - meth_desc.is_singleton = method.singleton - meth_desc.block_params = method.block_params - - meth_desc.aliases = method.aliases.map do |a| - RDoc::RI::AliasName.new(a.name) - end - - @ri_writer.add_method(cls_desc, meth_desc) - end - - private - - ## - # Returns a list of class and instance methods that we'll be documenting - - def method_list(cls) - list = cls.method_list - unless @options.show_all - list = list.find_all do |m| - m.visibility == :public || m.visibility == :protected || m.force_documentation - end - end - - c = [] - i = [] - list.sort.each do |m| - if m.singleton - c << m - else - i << m - end - end - return c,i - end - - def params_of(method) - if method.call_seq - method.call_seq - else - params = method.params || "" - - p = params.gsub(/\s*\#.*/, '') - p = p.tr("\n", " ").squeeze(" ") - p = "(" + p + ")" unless p[0] == ?( - - if (block = method.block_params) - block.gsub!(/\s*\#.*/, '') - block = block.tr("\n", " ").squeeze(" ") - if block[0] == ?( - block.sub!(/^\(/, '').sub!(/\)/, '') - end - p << " {|#{block.strip}| ...}" - end - p - end - end - - def markup(comment) - return nil if !comment || comment.empty? - - # Convert leading comment markers to spaces, but only - # if all non-blank lines have them - - if comment =~ /^(?>\s*)[^\#]/ - content = comment - else - content = comment.gsub(/^\s*(#+)/) { $1.tr('#',' ') } - end - @markup.convert(content, @to_flow) - end - - ## - # By default we replace existing classes with the same name. If the - # --merge option was given, we instead merge this definition into an - # existing class. We add our methods, aliases, etc to that class, but do - # not change the class's description. - - def update_or_replace(cls_desc) - old_cls = nil - - if @options.merge - rdr = RDoc::RI::Reader.new RDoc::RI::Cache.new(@options.op_dir) - - namespace = rdr.top_level_namespace - namespace = rdr.lookup_namespace_in(cls_desc.name, namespace) - if namespace.empty? - $stderr.puts "You asked me to merge this source into existing " - $stderr.puts "documentation. This file references a class or " - $stderr.puts "module called #{cls_desc.name} which I don't" - $stderr.puts "have existing documentation for." - $stderr.puts - $stderr.puts "Perhaps you need to generate its documentation first" - exit 1 - else - old_cls = namespace[0] - end - end - - prev_cls = @generated[cls_desc.full_name] - - if old_cls and not prev_cls then - old_desc = rdr.get_class old_cls - cls_desc.merge_in old_desc - end - - if prev_cls then - cls_desc.merge_in prev_cls - end - - @generated[cls_desc.full_name] = cls_desc - - @ri_writer.remove_class cls_desc - @ri_writer.add_class cls_desc - end - -end - diff --git a/lib/rdoc/generator/texinfo.rb b/lib/rdoc/generator/texinfo.rb deleted file mode 100644 index 70db875af9..0000000000 --- a/lib/rdoc/generator/texinfo.rb +++ /dev/null @@ -1,81 +0,0 @@ -require 'rdoc/rdoc' -require 'rdoc/generator' -require 'rdoc/markup/to_texinfo' - -module RDoc - module Generator - # This generates Texinfo files for viewing with GNU Info or Emacs - # from RDoc extracted from Ruby source files. - class TEXINFO - # What should the .info file be named by default? - DEFAULT_INFO_FILENAME = 'rdoc.info' - - include Generator::MarkUp - - # Accept some options - def initialize(options) - @options = options - @options.inline_source = true - @options.op_name ||= 'rdoc.texinfo' - @options.formatter = ::RDoc::Markup::ToTexInfo.new - end - - # Generate the +texinfo+ files - def generate(toplevels) - @toplevels = toplevels - @files, @classes = ::RDoc::Generator::Context.build_indices(@toplevels, - @options) - - (@files + @classes).each { |x| x.value_hash } - - open(@options.op_name, 'w') do |f| - f.puts TexinfoTemplate.new('files' => @files, - 'classes' => @classes, - 'filename' => @options.op_name.gsub(/texinfo/, 'info'), - 'title' => @options.title).render - end - # TODO: create info files and install? - end - - class << self - # Factory? We don't need no stinkin' factory! - alias_method :for, :new - end - end - - # Basically just a wrapper around ERB. - # Should probably use RDoc::TemplatePage instead - class TexinfoTemplate - BASE_DIR = ::File.expand_path(::File.dirname(__FILE__)) # have to calculate this when the file's loaded. - - def initialize(values, file = 'texinfo.erb') - @v, @file = [values, file] - end - - def template - ::File.read(::File.join(BASE_DIR, 'texinfo', @file)) - end - - # Go! - def render - ERB.new(template).result binding - end - - def href(location, text) - text # TODO: how does texinfo do hyperlinks? - end - - def target(name, text) - text # TODO: how do hyperlink targets work? - end - - # TODO: this is probably implemented elsewhere? - def method_prefix(section) - { 'Class' => '.', - 'Module' => '::', - 'Instance' => '#', - }[section['category']] - end - end - end -end diff --git a/lib/rdoc/generator/texinfo/class.texinfo.erb b/lib/rdoc/generator/texinfo/class.texinfo.erb deleted file mode 100644 index 74ecc59f7d..0000000000 --- a/lib/rdoc/generator/texinfo/class.texinfo.erb +++ /dev/null @@ -1,44 +0,0 @@ -@node <%= @v['class']['full_name'].gsub(/::/, '-') %> -@chapter <%= @v['class']["classmod"] %> <%= @v['class']['full_name'] %> - -<% if @v['class']["parent"] and @v['class']['par_url'] %> -Inherits <%= href @v['class']["par_url"], @v['class']["parent"] %><% end %> - -<%= @v['class']["description"] %> - -<% if @v['class']["includes"] %> -Includes -<% @v['class']["includes"].each do |include| %> -* <%= href include["aref"], include["name"] %> -<% end # @v['class']["includes"] %> -<% end %> - -<% if @v['class']["sections"] %> -<% @v['class']["sections"].each do |section| %> -<% if section["attributes"] %> -Attributes -<% section["attributes"].each do |attributes| %> -* <%= attributes["name"] %> <%= attributes["rw"] %> <%= attributes["a_desc"] %> -<% end # section["attributes"] %> -<% end %> -<% end %> - -<% @v['class']["sections"].each do |section| %> -<% if section["method_list"] %> -Methods -@menu -<% section["method_list"].each_with_index do |method_list, i| %> -<%= i %> -<% (method_list["methods"] || []).each do |method| %> -* <%= @v['class']['full_name'].gsub(/::/, '-') %><%= method_prefix method_list %><%= method['name'] %>::<% end %> -<% end %> -@end menu - -<% section["method_list"].each do |method_list| %> -<% (method_list["methods"] || []).uniq.each do |method| %> -<%= TexinfoTemplate.new(@v.merge({'method' => method, 'list' => method_list}), - 'method.texinfo.erb').render %><% end %> -<% end %> -<% end # if section["method_list"] %> -<% end # @v['class']["sections"] %> -<% end %> diff --git a/lib/rdoc/generator/texinfo/file.texinfo.erb b/lib/rdoc/generator/texinfo/file.texinfo.erb deleted file mode 100644 index b619b94bd2..0000000000 --- a/lib/rdoc/generator/texinfo/file.texinfo.erb +++ /dev/null @@ -1,6 +0,0 @@ -<% if false %> -<h2>File: <%= @v['file']["short_name"] %></h2> -Path: <%= @v['file']["full_path"] %> - -<%= TexinfoTemplate.new(@v, 'content.texinfo.erb').render %> -<% end %> diff --git a/lib/rdoc/generator/texinfo/method.texinfo.erb b/lib/rdoc/generator/texinfo/method.texinfo.erb deleted file mode 100644 index f5c2b73a4b..0000000000 --- a/lib/rdoc/generator/texinfo/method.texinfo.erb +++ /dev/null @@ -1,6 +0,0 @@ -@node <%= @v['class']['full_name'].gsub(/::/, '-') %><%= method_prefix @v['list'] %><%= @v['method']['name'] %> -@section <%= @v['class']["classmod"] %> <%= @v['class']['full_name'] %><%= method_prefix @v['list'] %><%= @v['method']['name'] %> -<%= @v['method']["type"] %> <%= @v['method']["category"] %> method: -<%= target @v['method']["aref"], @v['method']['callseq'] || - @v['method']["name"] + @v['method']["params"] %> -<%= @v['method']["m_desc"] %> diff --git a/lib/rdoc/generator/texinfo/texinfo.erb b/lib/rdoc/generator/texinfo/texinfo.erb deleted file mode 100644 index 235f63d73c..0000000000 --- a/lib/rdoc/generator/texinfo/texinfo.erb +++ /dev/null @@ -1,28 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@c %**start of header -@setfilename <%= @v['filename'] %> -@settitle <%= @v['title'] %> -@c %**end of header - -@contents @c TODO: whitespace is a mess... =\ - -@ifnottex -@node Top - -@top <%= @v['title'] %> -@end ifnottex - -<% if @f = @v['files'].detect { |f| f.name =~ /Readme/i } %> -<%= @f.values['description'] %><% end %> - -@menu -<% @v['classes'].each do |klass| %> -* <%= klass.name.gsub(/::/, '-') %>::<% end %> -@c TODO: add files -@end menu - -<% (@v['classes'] || []).each_with_index do |klass, i| %> -<%= TexinfoTemplate.new(@v.merge('class' => klass.values), - 'class.texinfo.erb').render %><% end %> - -@bye diff --git a/lib/rdoc/generator/xml.rb b/lib/rdoc/generator/xml.rb deleted file mode 100644 index 0d4c5a7ea1..0000000000 --- a/lib/rdoc/generator/xml.rb +++ /dev/null @@ -1,117 +0,0 @@ -require 'rdoc/generator/html' - -## -# Generate XML output as one big file - -class RDoc::Generator::XML < RDoc::Generator::HTML - - ## - # Standard generator factory - - def self.for(options) - new(options) - end - - def initialize(*args) - super - end - - ## - # Build the initial indices and output objects - # based on an array of TopLevel objects containing - # the extracted information. - - def generate(info) - @info = info - @files = [] - @classes = [] - @hyperlinks = {} - - build_indices - generate_xml - end - - ## - # Generate: - # - # * a list of File objects for each TopLevel object. - # * a list of Class objects for each first level - # class or module in the TopLevel objects - # * a complete list of all hyperlinkable terms (file, - # class, module, and method names) - - def build_indices - @info.each do |toplevel| - @files << RDoc::Generator::File.new(toplevel, @options, RDoc::Generator::FILE_DIR) - end - - RDoc::TopLevel.all_classes_and_modules.each do |cls| - build_class_list(cls, @files[0], RDoc::Generator::CLASS_DIR) - end - end - - def build_class_list(from, html_file, class_dir) - @classes << RDoc::Generator::Class.new(from, html_file, class_dir, @options) - from.each_classmodule do |mod| - build_class_list(mod, html_file, class_dir) - end - end - - ## - # Generate all the HTML. For the one-file case, we generate - # all the information in to one big hash - - def generate_xml - values = { - 'charset' => @options.charset, - 'files' => gen_into(@files), - 'classes' => gen_into(@classes) - } - - template = RDoc::TemplatePage.new @template::ONE_PAGE - - if @options.op_name - opfile = File.open(@options.op_name, "w") - else - opfile = $stdout - end - template.write_html_on(opfile, values) - end - - def gen_into(list) - res = [] - list.each do |item| - res << item.value_hash - end - res - end - - def gen_file_index - gen_an_index(@files, 'Files') - end - - def gen_class_index - gen_an_index(@classes, 'Classes') - end - - def gen_method_index - gen_an_index(RDoc::Generator::HtmlMethod.all_methods, 'Methods') - end - - def gen_an_index(collection, title) - res = [] - collection.sort.each do |f| - if f.document_self - res << { "href" => f.path, "name" => f.index_name } - end - end - - return { - "entries" => res, - 'list_title' => title, - 'index_url' => main_url, - } - end - -end - diff --git a/lib/rdoc/generator/xml/rdf.rb b/lib/rdoc/generator/xml/rdf.rb deleted file mode 100644 index 7b15c69a18..0000000000 --- a/lib/rdoc/generator/xml/rdf.rb +++ /dev/null @@ -1,113 +0,0 @@ -require 'rdoc/generator/xml' - -module RDoc::Generator::XML::RDF - - CONTENTS_RDF = <<-EOF -<% if defined? classes and classes["description"] then %> - <description rd:parseType="Literal"> -<%= classes["description"] %> - </description> -<% end %> - -<% if defined? files and files["requires"] then %> -<% files["requires"].each do |requires| %> - <rd:required-file rd:name="<%= requires["name"] %>" /> -<% end # files["requires"] %> -<% end %> - -<% if defined? classes and classes["includes"] then %> - <IncludedModuleList> -<% classes["includes"].each do |includes| %> - <included-module rd:name="<%= includes["name"] %>" /> -<% end # includes["includes"] %> - </IncludedModuleList> -<% end %> - -<% if defined? classes and classes["sections"] then %> -<% classes["sections"].each do |sections| %> -<% if sections["attributes"] then %> -<% sections["attributes"].each do |attributes| %> - <contents> - <Attribute rd:name="<%= attributes["name"] %>"> -<% if attributes["rw"] then %> - <attribute-rw><%= attributes["rw"] %></attribute-rw> -<% end %> - <description rdf:parseType="Literal"><%= attributes["a_desc"] %></description> - </Attribute> - </contents> -<% end # sections["attributes"] %> -<% end %> - -<% if sections["method_list"] then %> -<% sections["method_list"].each do |method_list| %> -<% if method_list["methods"] then %> -<% method_list["methods"].each do |methods| %> - <contents> - <Method rd:name="<%= methods["name"] %>" rd:visibility="<%= methods["type"] %>" - rd:category="<%= methods["category"] %>" rd:id="<%= methods["aref"] %>"> - <parameters><%= methods["params"] %></parameters> -<% if methods["m_desc"] then %> - <description rdf:parseType="Literal"> -<%= methods["m_desc"] %> - </description> -<% end %> -<% if methods["sourcecode"] then %> - <source-code-listing rdf:parseType="Literal"> -<%= methods["sourcecode"] %> - </source-code-listing> -<% end %> - </Method> - </contents> -<% end # method_list["methods"] %> -<% end %> -<% end # sections["method_list"] %> -<% end %> - <!-- end method list --> -<% end # classes["sections"] %> -<% end %> - EOF - -######################################################################## - - ONE_PAGE = %{<?xml version="1.0" encoding="utf-8"?> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns="http://pragprog.com/rdoc/rdoc.rdf#" - xmlns:rd="http://pragprog.com/rdoc/rdoc.rdf#"> - -<!-- RDoc --> -<% values["files"].each do |files| %> - <rd:File rd:name="<%= files["short_name"] %>" rd:id="<%= files["href"] %>"> - <path><%= files["full_path"] %></path> - <dtm-modified><%= files["dtm_modified"] %></dtm-modified> -} + CONTENTS_RDF + %{ - </rd:File> -<% end # values["files"] %> -<% values["classes"].each do |classes| %> - <<%= values["classmod"] %> rd:name="<%= classes["full_name"] %>" rd:id="<%= classes["full_name"] %>"> - <classmod-info> -<% if classes["infiles"] then %> - <InFiles> -<% classes["infiles"].each do |infiles| %> - <infile> - <File rd:name="<%= infiles["full_path"] %>" -<% if infiles["full_path_url"] then %> - rdf:about="<%= infiles["full_path_url"] %>" -<% end %> - /> - </infile> -<% end # classes["infiles"] %> - </InFiles> -<% end %> -<% if classes["parent"] then %> - <superclass><%= href classes["par_url"], classes["parent"] %></superclass> -<% end %> - </classmod-info> -} + CONTENTS_RDF + %{ - </<%= classes["classmod"] %>> -<% end # values["classes"] %> -<!-- /RDoc --> -</rdf:RDF> -} - -end - diff --git a/lib/rdoc/generator/xml/xml.rb b/lib/rdoc/generator/xml/xml.rb deleted file mode 100644 index 4b54e7350f..0000000000 --- a/lib/rdoc/generator/xml/xml.rb +++ /dev/null @@ -1,123 +0,0 @@ -require 'rdoc/generator/xml' - -module RDoc::Generator::XML::XML - - CONTENTS_XML = <<-EOF -<% if defined? classes and classes["description"] then %> - <description> -<%= classes["description"] %> - </description> -<% end %> - <contents> -<% if defined? files and files["requires"] then %> - <required-file-list> -<% files["requires"].each do |requires| %> - <required-file name="<%= requires["name"] %>" -<% if requires["aref"] then %> - href="<%= requires["aref"] %>" -<% end %> - /> -<% end %><%# files["requires"] %> - </required-file-list> -<% end %> -<% if defined? classes and classes["sections"] then %> -<% classes["sections"].each do |sections| %> -<% if sections["constants"] then %> - <constant-list> -<% sections["constants"].each do |constant| %> - <constant name="<%= constant["name"] %>"> -<% if constant["value"] then %> - <value><%= constant["value"] %></value> -<% end %> - <description><%= constant["a_desc"] %></description> - </constant> -<% end %><%# sections["constants"] %> - </constant-list> -<% end %> -<% if sections["attributes"] then %> - <attribute-list> -<% sections["attributes"].each do |attributes| %> - <attribute name="<%= attributes["name"] %>"> -<% if attributes["rw"] then %> - <attribute-rw><%= attributes["rw"] %></attribute-rw> -<% end %> - <description><%= attributes["a_desc"] %></description> - </attribute> -<% end %><%# sections["attributes"] %> - </attribute-list> -<% end %> -<% if sections["method_list"] then %> - <method-list> -<% sections["method_list"].each do |method_list| %> -<% if method_list["methods"] then %> -<% method_list["methods"].each do |methods| %> - <method name="<%= methods["name"] %>" type="<%= methods["type"] %>" category="<%= methods["category"] %>" id="<%= methods["aref"] %>"> - <parameters><%= methods["params"] %></parameters> -<% if methods["m_desc"] then %> - <description> -<%= methods["m_desc"] %> - </description> -<% end %> -<% if methods["sourcecode"] then %> - <source-code-listing> -<%= methods["sourcecode"] %> - </source-code-listing> -<% end %> - </method> -<% end %><%# method_list["methods"] %> -<% end %> -<% end %><%# sections["method_list"] %> - </method-list> -<% end %> -<% end %><%# classes["sections"] %> -<% end %> -<% if defined? classes and classes["includes"] then %> - <included-module-list> -<% classes["includes"].each do |includes| %> - <included-module name="<%= includes["name"] %>" -<% if includes["aref"] then %> - href="<%= includes["aref"] %>" -<% end %> - /> -<% end %><%# classes["includes"] %> - </included-module-list> -<% end %> - </contents> - EOF - - ONE_PAGE = %{<?xml version="1.0" encoding="utf-8"?> -<rdoc> -<file-list> -<% values["files"].each do |files| %> - <file name="<%= files["short_name"] %>" id="<%= files["href"] %>"> - <file-info> - <path><%= files["full_path"] %></path> - <dtm-modified><%= files["dtm_modified"] %></dtm-modified> - </file-info> -} + CONTENTS_XML + %{ - </file> -<% end %><%# values["files"] %> -</file-list> -<class-module-list> -<% values["classes"].each do |classes| %> - <<%= classes["classmod"] %> name="<%= classes["full_name"] %>" id="<%= classes["full_name"] %>"> - <classmod-info> -<% if classes["infiles"] then %> - <infiles> -<% classes["infiles"].each do |infiles| %> - <infile><%= href infiles["full_path_url"], infiles["full_path"] %></infile> -<% end %><%# classes["infiles"] %> - </infiles> -<% end %> -<% if classes["parent"] then %> - <superclass><%= href classes["par_url"], classes["parent"] %></superclass> -<% end %> - </classmod-info> -} + CONTENTS_XML + %{ - </<%= classes["classmod"] %>> -<% end %><%# values["classes"] %> -</class-module-list> -</rdoc> -} - -end |
