[前][次][番号順一覧][スレッド一覧]

ruby-changes:3442

From: ko1@a...
Date: 7 Jan 2008 19:41:35 +0900
Subject: [ruby-changes:3442] drbrain - Ruby:r14935 (trunk): Use ERB instead of custom template language for RDoc.

drbrain	2008-01-07 19:40:50 +0900 (Mon, 07 Jan 2008)

  New Revision: 14935

  Removed files:
    trunk/lib/rdoc/generators/template/html/old_html.rb
  Modified files:
    trunk/ChangeLog
    trunk/lib/rdoc/generators/chm_generator.rb
    trunk/lib/rdoc/generators/template/chm/chm.rb
    trunk/lib/rdoc/generators/template/html/hefss.rb
    trunk/lib/rdoc/generators/template/html/html.rb
    trunk/lib/rdoc/generators/template/html/kilmer.rb
    trunk/lib/rdoc/generators/template/html/one_page_html.rb
    trunk/lib/rdoc/generators/template/xml/rdf.rb
    trunk/lib/rdoc/generators/template/xml/xml.rb
    trunk/lib/rdoc/template.rb

  Log:
    Use ERB instead of custom template language for RDoc.
    
    Remove old_html template.
    
    Convert all templates to ERB.

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/chm/chm.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/html/old_html.rb
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/xml/xml.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/html/kilmer.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/chm_generator.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/template.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/html/one_page_html.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/html/hefss.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/xml/rdf.rb?r1=14935&r2=14934&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/rdoc/generators/template/html/html.rb?r1=14935&r2=14934&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14934)
+++ ChangeLog	(revision 14935)
@@ -1,3 +1,11 @@
+Mon Jan  7 19:39:50 2008  Eric Hodel  <drbrain@s...>
+
+	* lib/rdoc/template.rb:  Use ERB instead of custom template language.
+
+	* lib/rdoc/generators/template/html/old_html.rb:  Remove.
+
+	* lib/rdoc/generators/template/*: Convert to ERB.
+
 Mon Jan  7 19:11:30 2008  Yukihiro Matsumoto  <matz@r...>
 
 	* string.c (Init_String): sym_match arity spec was wrong.  a patch
Index: lib/rdoc/generators/chm_generator.rb
===================================================================
--- lib/rdoc/generators/chm_generator.rb	(revision 14934)
+++ lib/rdoc/generators/chm_generator.rb	(revision 14935)
@@ -27,8 +27,6 @@
       "\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"
-
-    exit 99
   end
 
   ##
@@ -54,7 +52,7 @@
   # files that go to make up the help.
 
   def create_project_file
-    template = TemplatePage.new(RDoc::Page::HPP_FILE)
+    template = RDoc::TemplatePage.new RDoc::Page::HPP_FILE
     values = { "title" => @options.title, "opname" => @op_name }
     files = []
     @files.each do |f|
@@ -92,13 +90,13 @@
     end
 
     values = { "contents" => contents }
-    template = TemplatePage.new(RDoc::Page::CONTENTS)
+    template = RDoc::TemplatePage.new RDoc::Page::CONTENTS
     File.open("contents.hhc", "w") do |f|
       template.write_html_on(f, values)
     end
 
     values = { "index" => index }
-    template = TemplatePage.new(RDoc::Page::CHM_INDEX)
+    template = RDoc::TemplatePage.new RDoc::Page::CHM_INDEX
     File.open("index.hhk", "w") do |f|
       template.write_html_on(f, values)
     end
Index: lib/rdoc/generators/template/xml/xml.rb
===================================================================
--- lib/rdoc/generators/template/xml/xml.rb	(revision 14934)
+++ lib/rdoc/generators/template/xml/xml.rb	(revision 14935)
@@ -1,73 +1,74 @@
-module RDoc
-module Page
+module RDoc::Page
 
-
-
 CONTENTS_XML = %{
-IF:description
+<% if defined? classes and classes["description"] then %>
     <description>
-%description%
+<%= classes["description"] %>
     </description>
-ENDIF:description
+<% end %>
     <contents>
-IF:requires
+<% if defined? files and files["requires"] then %>
       <required-file-list>
-START:requires
-         <required-file name="%name%"
-IF:aref 
-                        href="%aref%"
-ENDIF:aref
+<% files["requires"].each do |requires| %>
+         <required-file name="<%= requires["name"] %>"
+<% if requires["aref"] then %> 
+                        href="<%= requires["aref"] %>"
+<% end %>
          />
-END:requires
+<% end # files["requires"] %>
       </required-file-list>
-ENDIF:requires
-IF:attributes
+<% end %>
+<% if defined? classes and classes["sections"] then %>
+<% classes["sections"].each do |sections| %>
+<% if sections["attributes"] then %>
       <attribute-list>
-START:attributes
-        <attribute name="%name%">
-IF:rw
-          <attribute-rw>%rw%</attribute-rw>
-ENDIF:rw
-          <description>%a_desc%</description>
+<% 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:attributes
+<% end # sections["attributes"] %>
       </attribute-list>
-ENDIF:attributes
-IF:includes
-      <included-module-list>
-START:includes
-        <included-module name="%name%"
-IF:aref
-                         href="%aref%"
-ENDIF:aref
-        />
-END:includes
-      </included-module-list>
-ENDIF:includes
-IF:method_list
+<% end %>
+<% if sections["method_list"] then %>
       <method-list>
-START:method_list
-IF:methods
-START:methods
-        <method name="%name%" type="%type%" category="%category%" id="%aref%">
-          <parameters>%params%</parameters>
-IF:m_desc
+<% 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>
-%m_desc%
+<%= methods["m_desc"] %>
           </description>
-ENDIF:m_desc
-IF:sourcecode
+<% end %>
+<% if methods["sourcecode"] then %>
           <source-code-listing>
-%sourcecode%
+<%= methods["sourcecode"] %>
           </source-code-listing>
-ENDIF:sourcecode
+<% end %>
         </method>
-END:methods
-ENDIF:methods
-END:method_list
+<% end # method_list["methods"] %>
+<% end %>
+<% end # sections["method_list"] %>
       </method-list>
-ENDIF:method_list
-     </contents>
+<% 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>
 }
 
 ########################################################################
@@ -75,38 +76,36 @@
 ONE_PAGE = %{<?xml version="1.0" encoding="utf-8"?>
 <rdoc>
 <file-list>
-START:files
-  <file name="%short_name%" id="%href%">
+<% values["files"].each do |files| %>
+  <file name="<%= files["short_name"] %>" id="<%= files["href"] %>">
     <file-info>
-      <path>%full_path%</path>
-      <dtm-modified>%dtm_modified%</dtm-modified>
+      <path><%= files["full_path"] %></path>
+      <dtm-modified><%= files["dtm_modified"] %></dtm-modified>
     </file-info>
 } + CONTENTS_XML + %{
   </file>
-END:files
+<% end # values["files"] %>
 </file-list>
 <class-module-list>
-START:classes
-  <%classmod% name="%full_name%" id="%full_name%">
+<% values["classes"].each do |classes| %>
+  <<%= classes["classmod"] %> name="<%= classes["full_name"] %>" id="<%= classes["full_name"] %>">
     <classmod-info>
-IF:infiles
+<% if classes["infiles"] then %>
       <infiles>      
-START:infiles
-        <infile>HREF:full_path_url:full_path:</infile>
-END:infiles
+<% classes["infiles"].each do |infiles|  %>
+        <infile><%= href infiles["full_path_url"], infiles["full_path"] %></infile>
+<% end # classes["infiles"] %>
       </infiles>
-ENDIF:infiles
-IF:parent
-     <superclass>HREF:par_url:parent:</superclass>
-ENDIF:parent
+<% end %>
+<% if classes["parent"] then %>
+     <superclass><%= href classes["par_url"], classes["parent"] %></superclass>
+<% end %>
     </classmod-info>
 } + CONTENTS_XML + %{
-  </%classmod%>
-END:classes
+  </<%= classes["classmod"] %>>
+<% end # values["classes"] %>
 </class-module-list>
 </rdoc>
 }
 
-
 end
-end
Index: lib/rdoc/generators/template/xml/rdf.rb
===================================================================
--- lib/rdoc/generators/template/xml/rdf.rb	(revision 14934)
+++ lib/rdoc/generators/template/xml/rdf.rb	(revision 14935)
@@ -1,67 +1,68 @@
-module RDoc
-module Page
+module RDoc::Page
 
-
-
 CONTENTS_RDF = %{
-IF:description
+<% if defined? classes and classes["description"] then %>
     <description rd:parseType="Literal">
-%description%
+<%= classes["description"] %>
     </description>
-ENDIF:description
+<% end %>
 
-IF:requires
-START:requires
-         <rd:required-file rd:name="%name%" />
-END:requires
-ENDIF:requires
+<% if defined? files and files["requires"] then %>
+<% files["requires"].each do |requires| %>
+         <rd:required-file rd:name="<%= requires["name"] %>" />
+<% end # files["requires"] %>
+<% end %>
 
-IF:attributes
-START:attributes
+<% 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="%name%">
-IF:rw
-          <attribute-rw>%rw%</attribute-rw>
-ENDIF:rw
-          <description rdf:parseType="Literal">%a_desc%</description>
+        <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:attributes
-ENDIF:attributes
+<% end # sections["attributes"] %>
+<% end %>
 
-IF:includes
-      <IncludedModuleList>
-START:includes
-        <included-module rd:name="%name%"  />
-END:includes
-      </IncludedModuleList>
-ENDIF:includes
-
-IF:method_list
-START:method_list
-IF:methods
-START:methods
+<% 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="%name%" rd:visibility="%type%"
-                rd:category="%category%" rd:id="%aref%">
-          <parameters>%params%</parameters>
-IF:m_desc
+        <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">
-%m_desc%
+<%= methods["m_desc"] %>
           </description>
-ENDIF:m_desc
-IF:sourcecode
+<% end %>
+<% if methods["sourcecode"] then %>
           <source-code-listing rdf:parseType="Literal">
-%sourcecode%
+<%= methods["sourcecode"] %>
           </source-code-listing>
-ENDIF:sourcecode
+<% end %>
         </Method>
        </contents>
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
+<% end # method_list["methods"] %>
+<% end %>
+<% end # sections["method_list"] %>
+<% end %>
      <!-- end method list -->
+<% end # classes["sections"] %>
+<% end %>
 }
 
 ########################################################################
@@ -72,41 +73,39 @@
         xmlns:rd="http://pragprog.com/rdoc/rdoc.rdf#">
 
 <!-- RDoc -->
-START:files
-  <rd:File rd:name="%short_name%" rd:id="%href%">
-      <path>%full_path%</path>
-      <dtm-modified>%dtm_modified%</dtm-modified>
+<% 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:files
-START:classes
-  <%classmod% rd:name="%full_name%" rd:id="%full_name%">
+<% end # values["files"] %>
+<% values["classes"].each do |classes| %>
+  <<%= values["classmod"] %> rd:name="<%= classes["full_name"] %>" rd:id="<%= classes["full_name"] %>">
     <classmod-info>
-IF:infiles
+<% if classes["infiles"] then %>
       <InFiles>
-START:infiles
+<% classes["infiles"].each do |infiles| %>
         <infile>
-          <File rd:name="%full_path%"
-IF:full_path_url
-                rdf:about="%full_path_url%"
-ENDIF:full_path_url
+          <File rd:name="<%= infiles["full_path"] %>"
+<% if infiles["full_path_url"] then %>
+                rdf:about="<%= infiles["full_path_url"] %>"
+<% end %>
            />
          </infile>
-END:infiles
+<% end # classes["infiles"] %>
       </InFiles>
-ENDIF:infiles
-IF:parent
-     <superclass>HREF:par_url:parent:</superclass>
-ENDIF:parent
+<% end %>
+<% if classes["parent"] then %>
+     <superclass><%= href classes["par_url"], classes["parent"] %></superclass>
+<% end %>
     </classmod-info>
 } + CONTENTS_RDF + %{
-  </%classmod%>
-END:classes
+  </<%= classes["classmod"] %>>
+<% end # values["classes"] %>
 <!-- /RDoc -->
 </rdf:RDF>
 }
 
-
 end
-end
 
Index: lib/rdoc/generators/template/html/old_html.rb
===================================================================
--- lib/rdoc/generators/template/html/old_html.rb	(revision 14934)
+++ lib/rdoc/generators/template/html/old_html.rb	(revision 14935)
@@ -1,728 +0,0 @@
-module RDoc
-
-# This is how you define the HTML that RDoc generates. Simply create
-# a file in rdoc/generators/html_templates that creates the
-# module RDoc::Page and populate it as described below. Then invoke
-# rdoc using the --template <name of your file> option, and
-# your template will be used.
-#
-# The constants defining pages use a simple templating system:
-#
-# * The templating system is passed a hash. Keys in the hash correspond
-#   to tags on this page. The tag %abc% is looked up in the hash,
-#   and is replaced by the corresponding hash value.
-#
-# * Some tags are optional. You can detect this using IF/ENDIF
-#
-#      IF: title
-#      The value of title is %title%
-#      ENDIF: title
-#
-# * Some entries in the hash have values that are arrays, where each
-#   entry in the array is itself a hash. These are used to generate
-#   lists using the START: construct. For example, given a hash
-#   containing
-# 
-#      { 'people' => [ { 'name' => 'Fred', 'age' => '12' },
-#                      { 'name' => 'Mary', 'age' => '21' } ]
-#
-#   You could generate a simple table using
-#
-#      <table>
-#      START:people
-#        <tr><td>%name%<td>%age%</tr>
-#      END:people
-#      </table>
-#
-#   These lists can be nested to an arbitrary depth
-#
-# * the construct HREF:url:name: generates <a href="%url%">%name%</a>
-#   if +url+ is defined in the hash, or %name% otherwise.
-#
-#
-# Your file must contain the following constants
-#
-# [*FONTS*]  a list of fonts to be used
-# [*STYLE*]  a CSS section (without the <style> or comments). This is
-#            used to generate a style.css file
-#
-# [*BODY*] 
-#   The main body of all non-index RDoc pages. BODY will contain
-#   two !INCLUDE!s. The first is used to include a document-type
-#   specific header (FILE_PAGE or CLASS_PAGE). The second include
-#   is for the method list (METHOD_LIST). THe body is passed:
-#
-#   %title%::
-#       the page's title
-#
-#   %style_url%::
-#       the url of a style sheet for this page
-#
-#   %diagram%::
-#       the optional URL of a diagram for this page
-#
-#   %description%::
-#       a (potentially multi-paragraph) string containing the
-#       description for th file/class/module.
-#
-#   %requires%::
-#       an optional list of %aref%/%name% pairs, one for each module
-#       required by this file.
-#
-#   %methods%::
-#       an optional list of %aref%/%name%, one for each method
-#       documented on this page. This is intended to be an index.
-#
-#   %attributes%::  
-#       An optional list. For each attribute it contains:
-#       %name%::   the attribute name
-#       %rw%::     r/o, w/o, or r/w
-#       %a_desc%:: description of the attribute
-#
-#   %classlist%:: 
-#       An optional string containing an already-formatted list of
-#       classes and modules documented in this file
-#
-#   For FILE_PAGE entries, the body will be passed
-#
-#   %short_name%::  
-#       The name of the file
-#
-#   %full_path%::
-#       The full path to the file
-#
-#   %dtm_modified%::
-#       The date/time the file was last changed
-#
-#   For class and module pages, the body will be passed
-#
-#   %classmod%::
-#       The name of the class or module
-#
-#   %files%::
-#       A list. For each file this class is defined in, it contains:
-#       %full_path_url%:: an (optional) URL of the RDoc page
-#                         for this file
-#       %full_path%::     the name of the file
-#
-#   %par_url%::
-#       The (optional) URL of the RDoc page documenting this class's
-#       parent class
-#
-#   %parent%::
-#       The name of this class's parent.
-#
-#   For both files and classes, the body is passed the following information
-#   on includes and methods:
-#
-#   %includes%::    
-#       Optional list of included modules. For each, it receives
-#       %aref%:: optional URL to RDoc page for the module
-#       %name%:: the name of the module
-#
-#   %method_list%::
-#       Optional list of methods of a particular class and category.
-#
-#   Each method list entry contains:
-#
-#   %type%::        public/private/protected
-#   %category%::    instance/class
-#   %methods%::     a list of method descriptions
-#
-#   Each method description contains:
-#
-#   %aref%::        a target aref, used when referencing this method
-#                   description. You should code this as <a name="%aref%">
-#   %codeurl%::     the optional URL to the page containing this method's
-#                   source code.
-#   %name%::        the method's name
-#   %params%::      the method's parameters
-#   %callseq%::     a full calling sequence
-#   %m_desc%::      the (potentially multi-paragraph) description of
-#                   this method.
-#
-# [*CLASS_PAGE*]
-#         Header for pages documenting classes and modules. See
-#         BODY above for the available parameters.
-#
-# [*FILE_PAGE*]
-#         Header for pages documenting files. See
-#         BODY above for the available parameters.
-#
-# [*METHOD_LIST*]
-#         Controls the display of the listing of methods. See BODY for
-#         parameters.
-#
-# [*INDEX*]
-#         The top-level index page. For a browser-like environment
-#         define a frame set that includes the file, class, and 
-#         method indices. Passed
-#         %title%:: title of page
-#         %initial_page% :: url of initial page to display
-#
-# [*CLASS_INDEX*]
-#         Individual files for the three indexes. Passed:
-#         %index_url%:: URL of main index page
-#         %entries%::   List of
-#                       %name%:: name of an index entry
-#                       %href%:: url of corresponding page
-# [*METHOD_INDEX*]
-#         Same as CLASS_INDEX for methods
-#
-# [*FILE_INDEX*]
-#         Same as CLASS_INDEX for methods
-#
-# [*FR_INDEX_BODY*]
-#         A wrapper around CLASS_INDEX, METHOD_INDEX, and FILE_INDEX.
-#         If those index strings contain the complete HTML for the
-#         output, then FR_INDEX_BODY can simply be !INCLUDE!
-#
-# [*SRC_PAGE*]
-#         Page used to display source code. Passed %title% and %code%,
-#         the latter being a multi-line string of code.
-
-module Page
-
-FONTS = "Verdana, Arial, Helvetica, sans-serif"
-
-STYLE = %{
-body,td,p { font-family: %fonts%; 
-       color: #000040;
-}
-
-.attr-rw { font-size: x-small; color: #444488 }
-
-.title-row { background: #0000aa;
-             color:      #eeeeff;
-}
-
-.big-title-font { color: white;
-                  font-family: %fonts%;
-                  font-size: large; 
-                  height: 50px}
-
-.small-title-font { color: aqua;
-                    font-family: %fonts%;
-                    font-size: xx-small; }
-
-.aqua { color: aqua }
-
-.method-name, attr-name {
-      font-family: monospace; font-weight: bold;
-}
-
-.tablesubtitle, .tablesubsubtitle {
-   width: 100%;
-   margin-top: 1ex;
-   margin-bottom: .5ex;
-   padding: 5px 0px 5px 20px;
-   font-size: large;
-   color: aqua;
-   background: #3333cc;
-}
-
-.name-list {
-  font-family: monospace;
-  margin-left: 40px;
-  margin-bottom: 2ex;
-  line-height: 140%;
-}
-
-.description {
-  margin-left: 40px;
-  margin-top: -2ex;
-  margin-bottom: 2ex;
-}
-
-.description p {
-  line-height: 140%;
-}
-
-.aka {
-  margin-left: 40px;
-  margin-bottom: 2ex;
-  line-height: 100%;
-  font-size:   small;
-  color:       #808080;
-}
-
-.methodtitle {
-  font-size: medium;
-  text-decoration: none;
-  color: #0000AA;
-  background: white; 
-}
-
-.paramsig {
-   font-size: small;
-}
-
-.srcbut { float: right }
-
-pre { font-size: 1.2em; }
-tt  { font-size: 1.2em; }
-
-pre.source {
-  border-style: groove;
-  background-color: #ddddff;
-  margin-left:  40px;
-  padding: 1em 0em 1em 2em;
-}
-
-.classlist {
-  margin-left: 40px;
-  margin-bottom: 2ex;
-  line-height: 140%;
-}
-
-li {
-  display:    list-item;
-  margin-top: .6em;
-}
-
-.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 }
-
-}
-
-
-############################################################################
-
-
-HEADER = %{
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
-  <link rel=StyleSheet href="%style_url%" type="text/css" media="screen" />
-  <script type="text/javascript" language="JavaScript">
-  <!--
-  function popCode(url) {
-    window.open(url, "Code", 
-          "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
-  }
-  //-->
-  </script>
-</head>
-}
-
-
-###################################################################
-
-METHOD_LIST = %{
-IF:includes
-<table summary="Included modules" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Included modules</td></tr>
-</table>
-<div class="name-list">
-START:includes
-    <span class="method-name">HREF:aref:name:</span>
-END:includes
-</div>
-ENDIF:includes
-
-IF:method_list
-START:method_list
-IF:methods
-<table summary="Method list" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">%type% %category% methods</td></tr>
-</table>
-START:methods
-<table summary="method"  width="100%" cellspacing="0" cellpadding="5" border="0">
-<tr><td class="methodtitle">
-<a name="%aref%"></a>
-IF:codeurl
-<a href="%codeurl%" target="Code" class="methodtitle"
- onClick="popCode('%codeurl%');return false;">
-ENDIF:codeurl
-IF:callseq
-<b>%callseq%</b>
-ENDIF:callseq
-IFNOT:callseq
-<b>%name%</b>%params%
-ENDIF:callseq
-IF:codeurl
-</a>
-ENDIF:codeurl
-</td></tr>
-</table>
-IF:m_desc
-<div class="description">
-%m_desc%
-</div>
-ENDIF:m_desc
-IF:aka
-<div class="aka">
-This method is also aliased as
-START:aka
-<a href="%aref%">%name%</a>
-END:aka
-</div>
-ENDIF:aka
-IF:sourcecode
-<pre class="source">
-%sourcecode%
-</pre>
-ENDIF:sourcecode
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
-}
-
-###################################################################
-
-CONTEXT_CONTENT = %{
-IF:diagram
-<table summary="Diagram of classes and modules" width="100%">
-<tr><td align="center">
-%diagram%
-</td></tr></table>
-ENDIF:diagram
-
-
-IF:description
-<div class="description">%description%</div>
-ENDIF:description
-
-IF:requires
-<table summary="Requires" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Required files</td></tr>
-</table>
-<div class="name-list">
-START:requires
-HREF:aref:name:&nbsp; &nbsp;
-END:requires
-</div>
-ENDIF:requires
-
-IF:methods
-<table summary="Methods" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Methods</td></tr>
-</table>
-<div class="name-list">
-START:methods
-HREF:aref:name:&nbsp; &nbsp;
-END:methods
-</div>
-ENDIF:methods
-
-IF:constants
-<table summary="Constants" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Constants</td></tr>
-</table>
-<table cellpadding="5">
-START:constants
-<tr valign="top"><td>%name%</td><td>=</td><td>%value%</td></tr>
-IF:desc
-<tr><td></td><td></td><td>%desc%</td></tr>
-ENDIF:desc
-END:constants
-</table>
-ENDIF:constants
-
-IF:aliases
-<table summary="Aliases" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">External Aliases</td></tr>
-</table>
-<div class="name-list">
-START:aliases
-%old_name% -> %new_name%<br />
-END:aliases
-</div>
-ENDIF:aliases
-
-IF:attributes
-<table summary="Attributes" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Attributes</td></tr>
-</table>
-<table summary="Attribute details" cellspacing="5">
-START:attributes
-     <tr valign="top">
-       <td class="attr-name">%name%</td>
-IF:rw
-       <td align="center" class="attr-rw">&nbsp;[%rw%]&nbsp;</td>
-ENDIF:rw
-IFNOT:rw
-       <td></td>
-ENDIF:rw
-       <td>%a_desc%</td>
-     </tr>
-END:attributes
-</table>
-ENDIF:attributes
-
-IF:classlist
-<table summary="List of classes" cellpadding="5" width="100%">
-<tr><td class="tablesubtitle">Classes and Modules</td></tr>
-</table>
-<div class="classlist">
-%classlist%
-</div>
-ENDIF:classlist
-}
-
-###############################################################################
-
-BODY = HEADER + %{
-<body bgcolor="white">
-!INCLUDE!  <!-- banner header -->
-} +
-CONTEXT_CONTENT + METHOD_LIST +
-%{
-</body>
-</html>
-}
-
-
-###############################################################################
-
-FILE_PAGE = <<_FILE_PAGE_
-<table summary="Information on file" width="100%">
- <tr class="title-row">
- <td><table summary="layout" width="100%"><tr>
-   <td class="big-title-font" colspan="2">%short_name%</td>
-   <td align="right"><table summary="layout" cellspacing="0" cellpadding="2">
-         <tr>
-           <td  class="small-title-font">Path:</td>
-           <td class="small-title-font">%full_path%
-IF:cvsurl
-				&nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
-           </td>
-         </tr>
-         <tr>
-           <td class="small-title-font">Modified:</td>
-           <td class="small-title-font">%dtm_modified%</td>
-         </tr>
-        </table>
-    </td></tr></table></td>
-  </tr>
-</table>
-_FILE_PAGE_
-
-###################################################################
-
-CLASS_PAGE = %{
-<table summary="Information on class" width="100%" border="0" cellspacing="0">
- <tr class="title-row">
- <td class="big-title-font">
-   <sup><font color="aqua">%classmod%</font></sup> %full_name%
- </td>
- <td align="right">
-   <table summary="layout" cellspacing="0" cellpadding="2">
-     <tr valign="top">
-      <td class="small-title-font">In:</td>
-      <td class="small-title-font">
-START:infiles
-IF:full_path_url
-        <a href="%full_path_url%" class="aqua">
-ENDIF:full_path_url
-%full_path%
-IF:full_path_url
-         </a>
-ENDIF:full_path_url
-IF:cvsurl
-         &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
-<br />
-END:infiles
-      </td>
-     </tr>
-IF:parent
-     <tr>
-      <td class="small-title-font">Parent:</td>
-      <td class="small-title-font">
-IF:par_url
-        <a href="%par_url%" class="aqua">
-ENDIF:par_url
-%parent%
-IF:par_url
-         </a>
-ENDIF:par_url
-      </td>
-     </tr>
-ENDIF:parent
-   </table>
-  </td>
-  </tr>
-</table>
-}
-
-=begin
-=end
-
-########################## Source code ##########################
-
-SRC_PAGE = %{
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
-<title>%title%</title>
-<link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
-</head>
-<body bgcolor="white">
-<pre>%code%</pre>
-</body>
-</html>
-}
-
-########################## Index ################################
-
-FR_INDEX_BODY = %{
-!INCLUDE!
-}
-
-FILE_INDEX = %{
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
-<title>%list_title%</title>
-<style type="text/css">
-<!--
-  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%;
-}
-
-A.xx { color: white; font-weight: bold; }
--->
-</style>
-<base target="docwin">
-</head>
-<body>
-<div class="banner"><a href="%index_url%" class="xx">%list_title%</a></div>
-START:entries
-<a href="%href%">%name%</a><br />
-END:entries
-</body></html>
-}
-
-CLASS_INDEX = FILE_INDEX
-METHOD_INDEX = FILE_INDEX
-
-INDEX = %{
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
-<title>%title%</title></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="%initial_page%" name="docwin">
-    <noframes>
-          <body bgcolor="white">
-            Sorry, RDoc currently only generates HTML using frames.
-          </body>
-    </noframes>
-</frameset>
-
-</html>
-}
-
-######################################################################
-#
-# The following is used for the -1 option
-#
-
-CONTENTS_XML = %{
-IF:description
-%description%
-ENDIF:description
-
-IF:requires
-<h4>Requires:</h4>
-<ul>
-START:requires
-IF:aref
-<li><a href="%aref%">%name%</a></li>
-ENDIF:aref
-IFNOT:aref
-<li>%name%</li>
-ENDIF:aref 
-END:requires
-</ul>
-ENDIF:requires
-
-IF:attributes
-<h4>Attributes</h4>
-<table>
-START:attributes
-<tr><td>%name%</td><td>%rw%</td><td>%a_desc%</td></tr>
-END:attributes
-</table>
-ENDIF:attributes
-
-IF:includes
-<h4>Includes</h4>
-<ul>
-START:includes
-IF:aref
-<li><a href="%aref%">%name%</a></li>
-ENDIF:aref
-IFNOT:aref
-<li>%name%</li>
-ENDIF:aref 
-END:includes
-</ul>
-ENDIF:includes
-
-IF:method_list
-<h3>Methods</h3>
-START:method_list
-IF:methods
-START:methods
-<h4>%type% %category% method: <a name="%aref%">%name%%params%</a></h4>
-
-IF:m_desc
-%m_desc%
-ENDIF:m_desc
-
-IF:sourcecode
-<blockquote><pre>
-%sourcecode%
-</pre></blockquote>
-ENDIF:sourcecode
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
-}
-
-
-end
-end
-
-require 'rdoc/generators/template/html/one_page_html'
Index: lib/rdoc/generators/template/html/one_page_html.rb
===================================================================
--- lib/rdoc/generators/template/html/one_page_html.rb	(revision 14934)
+++ lib/rdoc/generators/template/html/one_page_html.rb	(revision 14935)
@@ -1,78 +1,77 @@
-module RDoc
-module Page
-######################################################################
-#
-# The following is used for the -1 option
-#
+module RDoc::Page
 
 CONTENTS_XML = %{
-IF:description
-%description%
-ENDIF:description
+<% if defined? classes and classes["description"] then %>
+<%= classes["description"] %>
+<% end %>
 
-IF:requires
+<% if defined? files and files["requires"] then %>
 <h4>Requires:</h4>
 <ul>
-START:requires
-IF:aref
-<li><a href="%aref%">%name%</a></li>
-ENDIF:aref
-IFNOT:aref
-<li>%name%</li>
-ENDIF:aref 
-END:requires
+<% 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>
-ENDIF:requires
+<% end %>
 
-IF:attributes
-<h4>Attributes</h4>
-<table>
-START:attributes
-<tr><td>%name%</td><td>%rw%</td><td>%a_desc%</td></tr>
-END:attributes
-</table>
-ENDIF:attributes
-
-IF:includes
+<% if defined? classes and classes["includes"] then %>
 <h4>Includes</h4>
 <ul>
-START:includes
-IF:aref
-<li><a href="%aref%">%name%</a></li>
-ENDIF:aref
-IFNOT:aref
-<li>%name%</li>
-ENDIF:aref 
-END:includes
+<% 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>
-ENDIF:includes
+<% end %>
 
-IF:method_list
+<% 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>
-START:method_list
-IF:methods
-START:methods
-<h4>%type% %category% method: 
-IF:callseq
-<a name="%aref%">%callseq%</a>
-ENDIF:callseq
-IFNOT:callseq
-<a name="%aref%">%name%%params%</a></h4>
-ENDIF:callseq
+<% 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:m_desc
-%m_desc%
-ENDIF:m_desc
+<% if methods["m_desc"] then %>
+<%= methods["m_desc"] %>
+<% end %>
 
-IF:sourcecode
+<% if methods["sourcecode"] then %>
 <blockquote><pre>
-%sourcecode%
+<%= methods["sourcecode"] %>
 </pre></blockquote>
-ENDIF:sourcecode
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
+<% end %>
+<% end # method_list["methods"] %>
+<% end %>
+<% end # sections["method_list"] %>
+<% end %>
+<% end # classes["sections"] %>
+<% end %>
 }
 
 ########################################################################
@@ -81,42 +80,42 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
+  <title><%= values["title"] %></title>
+  <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>" />
 </head>
 <body>
-START:files
-<h2>File: %short_name%</h2>
+<% values["files"].each do |files| %>
+<h2>File: <%= files["short_name"] %></h2>
 <table>
-  <tr><td>Path:</td><td>%full_path%</td></tr>
-  <tr><td>Modified:</td><td>%dtm_modified%</td></tr>
+  <tr><td>Path:</td><td><%= files["full_path"] %></td></tr>
+  <tr><td>Modified:</td><td><%= files["dtm_modified"] %></td></tr>
 </table>
 } + CONTENTS_XML + %{
-END:files
+<% end # values["files"] %>
 
-IF:classes
+<% if values["classes"] then %>
 <h2>Classes</h2>
-START:classes
-IF:parent
-<h3>%classmod% %full_name% &lt; HREF:par_url:parent:</h3>
-ENDIF:parent
-IFNOT:parent
-<h3>%classmod% %full_name%</h3>
-ENDIF:parent
+<% values["classes"].each do |classes| %>
+<% if classes["parent"] then %>
+<h3><%= classes["classmod"] %> <%= classes["full_name"] %> &lt; <%= href classes["par_url"], classes["parent"] %></h3>
+<% end %>
+<% unless classes["parent"] then %>
+<h3><%= classes["classmod"] %> <%= classes["full_name"] %></h3>
+<% end %>
 
-IF:infiles
+<% if classes["infiles"] then %>
 (in files
-START:infiles
-HREF:full_path_url:full_path:
-END:infiles
+<% classes["infiles"].each do |infiles| %>
+<%= href infiles["full_path_url"], infiles["full_path"] %>
+<% end # classes["infiles"] %>
 )
-ENDIF:infiles
+<% end %>
 } + CONTENTS_XML + %{
-END:classes
-ENDIF:classes
+<% end # values["classes"] %>
+<% end %>
 </body>
 </html>
 }
 
 end
-end
+
Index: lib/rdoc/generators/template/html/kilmer.rb
===================================================================
--- lib/rdoc/generators/template/html/kilmer.rb	(revision 14934)
+++ lib/rdoc/generators/template/html/kilmer.rb	(revision 14935)
@@ -5,7 +5,7 @@
 FONTS = "Verdana, Arial, Helvetica, sans-serif"
 
 STYLE = %{
-body,td,p { font-family: %fonts%; 
+body,td,p { font-family: <%= values["fonts"] %>; 
        color: #000040;
 }
 
@@ -18,20 +18,20 @@
 .big-title-font { 
   color: black;
   font-weight: bold;
-  font-family: %fonts%; 
+  font-family: <%= values["fonts"] %>; 
   font-size: large; 
   height: 60px;
   padding: 10px 3px 10px 3px;
 }
 
 .small-title-font { color: black;
-                    font-family: %fonts%;
+                    font-family: <%= values["fonts"] %>;
                     font-size:10; }
 
 .aqua { color: black }
 
 .method-name, .attr-name {
-      font-family: font-family: %fonts%; 
+      font-family: font-family: <%= values["fonts"] %>; 
       font-weight: bold;
       font-size: small;
       margin-left: 20px;
@@ -92,9 +92,9 @@
 
 BODY = %{
 <html><head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%">
-  <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
+  <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" language="JavaScript">
   <!--
   function popCode(url) {
@@ -105,82 +105,82 @@
 </head>
 <body bgcolor="white">
 
-!INCLUDE!  <!-- banner header -->
+<%= template_include %>  <!-- banner header -->
 
-IF:diagram
+<% if values["diagram"] then %>
 <table width="100%"><tr><td align="center">
-%diagram%
+<%= values["diagram"] %>
 </td></tr></table>
-ENDIF:diagram
+<% end %>
 
-IF:description
-<div class="description">%description%</div>
-ENDIF:description
+<% if values["description"] then %>
+<div class="description"><%= values["description"] %></div>
+<% end %>
 
-IF:requires
+<% if values["requires"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Required files</td></tr>
 </table><br />
 <div class="name-list">
-START:requires
-HREF:aref:name:
-END:requires
-ENDIF:requires
+<% values["requires"].each do |requires| %>
+<%= href requires["aref"], requires["name"] %>
+<% end # values["requires"] %>
+<% end %>
 </div>
 
-IF:methods
+<% if values["methods"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Methods</td></tr>
 </table><br />
 <div class="name-list">
-START:methods
-HREF:aref:name:,
-END:methods
+<% values["methods"].each do |methods| %>
+<%= href methods["aref"], methods["name"] %>,
+<% end # values["methods"] %>
 </div>
-ENDIF:methods
+<% end %>
 
 
-START:sections
+<% values["sections"].each do |sections| %>
     <div id="section">
-IF:sectitle
-      <h2 class="section-title"><a name="%secsequence%">%sectitle%</a></h2>
-IF:seccomment
+<% if sections["sectitle"] then %>
+      <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2>
+<% if sections["seccomment"] then %>
       <div class="section-comment">
-        %seccomment%
-      </div>      
-ENDIF:seccomment
-ENDIF:sectitle
+        <%= sections["seccomment"] %>
+      </div>
+<% end %>
+<% end %>
 
-IF:attributes
+<% if sections["attributes"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Attributes</td></tr>
 </table><br />
 <table cellspacing="5">
-START:attributes
+<% sections["attributes"].each do |attributes| %>
      <tr valign="top">
-IF:rw
-       <td align="center" class="attr-rw">&nbsp;[%rw%]&nbsp;</td>
-ENDIF:rw
-IFNOT:rw
+<% if attributes["rw"] then %>
+       <td align="center" class="attr-rw">&nbsp;[<%= attributes["rw"] %>]&nbsp;</td>
+<% end %>
+<% unless attributes["rw"] then %>
        <td></td>
-ENDIF:rw
-       <td class="attr-name">%name%</td>
-       <td>%a_desc%</td>
+<% end %>
+       <td class="attr-name"><%= attributes["name"] %></td>
+       <td><%= attributes["a_desc"] %></td>
      </tr>
-END:attributes
+<% end # sections["attributes"] %>
 </table>
-ENDIF:attributes
+<% end %>
 
-IF:classlist
+<% if sections["classlist"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Classes and Modules</td></tr>
 </table><br />
-%classlist%<br />
-ENDIF:classlist
+<%= sections["classlist"] %><br />
+<% end %>
 
-  !INCLUDE!  <!-- method descriptions -->
+  <%= template_include %>  <!-- method descriptions -->
 
-END:sections
+<% end # values["sections"] %>
 
 </body>
 </html>
@@ -192,19 +192,19 @@
 <table width="100%">
  <tr class="title-row">
  <td><table width="100%"><tr>
-   <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font>%short_name%</td>
+   <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font><%= 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">%full_path%
-IF:cvsurl
-				&nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
+           <td class="small-title-font"><%= values["full_path"] %>
+<% if values["cvsurl"] then %>
+				&nbsp;(<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">%dtm_modified%</td>
+           <td class="small-title-font"><%= values["dtm_modified"] %></td>
          </tr>
         </table>
     </td></tr></table></td>
@@ -218,35 +218,35 @@
 <table width="100%" border="0" cellspacing="0">
  <tr class="title-row">
  <td class="big-title-font">
-   <font size="-3"><b>%classmod%</b><br /></font>%full_name%
+   <font size="-3"><b><%= values["classmod"] %></b><br /></font><%= 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">
-START:infiles
-HREF:full_path_url:full_path:
-IF:cvsurl
-&nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
-END:infiles
+<% values["infiles"].each do |infiles| %>
+<%= href infiles["full_path_url"], infiles["full_path"] %>
+<% if infiles["cvsurl"] then %>
+&nbsp;(<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
+<% end %>
+<% end # values["infiles"] %>
       </td>
      </tr>
-IF:parent
+<% if values["parent"] then %>
      <tr>
       <td class="small-title-font">Parent:</td>
       <td class="small-title-font">
-IF:par_url
-        <a href="%par_url%" class="cyan">
-ENDIF:par_url
-%parent%
-IF:par_url
+<% if values["par_url"] then %>
+        <a href="<%= values["par_url"] %>" class="cyan">
+<% end %>
+<%= values["parent"] %>
+<% if values["par_url"] then %>
          </a>
-ENDIF:par_url
+<% end %>
       </td>
      </tr>
-ENDIF:parent
+<% end %>
    </table>
   </td>
   </tr>
@@ -256,58 +256,58 @@
 ###################################################################
 
 METHOD_LIST = %{
-IF:includes
+<% if values["includes"] then %>
 <div class="tablesubsubtitle">Included modules</div><br />
 <div class="name-list">
-START:includes
-    <span class="method-name">HREF:aref:name:</span>
-END:includes
+<% values["includes"].each do |includes| %>
+    <span class="method-name"><%= href includes["aref"], includes["name"] %></span>
+<% end # values["includes"] %>
 </div>
-ENDIF:includes
+<% end %>
 
-IF:method_list
-START:method_list
-IF:methods
+<% if values["method_list"] then %>
+<% values["method_list"].each do |method_list| $stderr.puts({ :method_list => method_list }.inspect) %>
+<% if values["methods"] then %>
 <table cellpadding=5 width="100%">
-<tr><td class="tablesubtitle">%type% %category% methods</td></tr>
+<tr><td class="tablesubtitle"><%= values["type"] %> <%= values["category"] %> methods</td></tr>
 </table>
-START:methods
+<% values["methods"].each do |methods| $stderr.puts({ :methods => methods }.inspect) %>
 <table width="100%" cellspacing="0" cellpadding="5" border="0">
 <tr><td class="methodtitle">
-<a name="%aref%">
-IF:callseq
-<b>%callseq%</b>
-ENDIF:callseq
-IFNOT:callseq
- <b>%name%</b>%params%
-ENDIF:callseq
-IF:codeurl
-<a href="%codeurl%" target="source" class="srclink">src</a>
-ENDIF:codeurl
+<a name="<%= values["aref"] %>">
+<% if values["callseq"] then %>
+<b><%= values["callseq"] %></b>
+<% end %>
+<% unless values["callseq"] then %>
+ <b><%= values["name"] %></b><%= values["params"] %>
+<% end %>
+<% if values["codeurl"] then %>
+<a href="<%= values["codeurl"] %>" target="source" class="srclink">src</a>
+<% end %>
 </a></td></tr>
 </table>
-IF:m_desc
+<% if values["m_desc"] then %>
 <div class="description">
-%m_desc%
+<%= values["m_desc"] %>
 </div>
-ENDIF:m_desc
-IF:aka
+<% end %>
+<% if values["aka"] then %>
 <div class="aka">
 This method is also aliased as
-START:aka
-<a href="%aref%">%name%</a>
-END:aka
+<% values["aka"].each do |aka| $stderr.puts({ :aka => aka }.inspect) %>
+<a href="<%= values["aref"] %>"><%= values["name"] %></a>
+<% end # values["aka"] %>
 </div>
-ENDIF:aka
-IF:sourcecode
+<% end %>
+<% if values["sourcecode"] then %>
 <pre class="source">
-%sourcecode%
+<%= values["sourcecode"] %>
 </pre>
-ENDIF:sourcecode
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
+<% end %>
+<% end # values["methods"] %>
+<% end %>
+<% end # values["method_list"] %>
+<% end %>
 }
 
 =begin
@@ -317,8 +317,8 @@
 
 SRC_PAGE = %{
 <html>
-<head><title>%title%</title>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+<head><title><%= values["title"] %></title>
+<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 <style type="text/css">
 .ruby-comment    { color: green; font-style: italic }
 .ruby-constant   { color: #4433aa; font-weight: bold; }
@@ -336,7 +336,7 @@
 </style>
 </head>
 <body bgcolor="white">
-<pre>%code%</pre>
+<pre><%= values["code"] %></pre>
 </body>
 </html>
 }
@@ -344,13 +344,13 @@
 ########################## Index ################################
 
 FR_INDEX_BODY = %{
-!INCLUDE!
+<%= template_include %>
 }
 
 FILE_INDEX = %{
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 <style>
 <!--
   body {
@@ -378,10 +378,10 @@
 <base target="docwin">
 </head>
 <body>
-<div class="banner">%list_title%</div>
-START:entries
-<a href="%href%">%name%</a><br />
-END:entries
+<div class="banner"><%= values["list_title"] %></div>
+<% values["entries"].each do |entries| %>
+<a href="<%= entries["href"] %>"><%= entries["name"] %></a><br />
+<% end # values["entries"] %>
 </body></html>
 }
 
@@ -391,8 +391,8 @@
 INDEX = %{
 <html>
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+  <title><%= values["title"] %></title>
+  <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 </head>
 
 <frameset cols="20%,*">
@@ -401,15 +401,15 @@
         <frame src="fr_class_index.html"  name="Classes">
         <frame src="fr_method_index.html" name="Methods">
     </frameset>
-IF:inline_source
-      <frame  src="%initial_page%" name="docwin">
-ENDIF:inline_source
-IFNOT:inline_source
+<% if values["inline_source"] then %>
+      <frame  src="<%= values["initial_page"] %>" name="docwin">
+<% end %>
+<% unless values["inline_source"] then %>
     <frameset rows="80%,20%">
-      <frame  src="%initial_page%" name="docwin">
+      <frame  src="<%= values["initial_page"] %>" name="docwin">
       <frame  src="blank.html" name="source">
     </frameset>
-ENDIF:inline_source
+<% end %>
     <noframes>
           <body bgcolor="white">
             Click <a href="html/index.html">here</a> for a non-frames
Index: lib/rdoc/generators/template/html/html.rb
===================================================================
--- lib/rdoc/generators/template/html/html.rb	(revision 14934)
+++ lib/rdoc/generators/template/html/html.rb	(revision 14935)
@@ -24,7 +24,7 @@
 
     FONTS = "Verdana,Arial,Helvetica,sans-serif"
 
-STYLE = %{
+STYLE = <<-EOF
 body {
     font-family: Verdana,Arial,Helvetica,sans-serif;
     font-size:   90%;
@@ -232,26 +232,26 @@
 .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  
+### H E A D E R   T E M P L A T E
 #####################################################################
 
-XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
-<!DOCTYPE html 
+XHTML_PREAMBLE = %{<?xml version="1.0" encoding="<%= values["charset"] %>"?>
+<!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 }
 
-HEADER = XHTML_PREAMBLE + %{
+HEADER = XHTML_PREAMBLE + <<-EOF
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
+  <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="%style_url%" type="text/css" media="screen" />
+  <link rel="stylesheet" href="<%= values["style_url"] %>" type="text/css" media="screen" />
   <script type="text/javascript">
   // <![CDATA[
 
@@ -268,7 +268,7 @@
       return false;
 
     elemStyle = elem.style;
-    
+
     if ( elemStyle.display != "block" ) {
       elemStyle.display = "block"
     } else {
@@ -277,16 +277,16 @@
 
     return true;
   }
-  
+
   // Make codeblocks hidden by default
   document.writeln( "<style type=\\"text/css\\">div.method-source-code { display: none }</style>" )
-  
+
   // ]]>
   </script>
 
 </head>
 <body>
-}
+EOF
 
 
 #####################################################################
@@ -300,308 +300,308 @@
 #####################################################################
 ### F O O T E R   T E M P L A T E
 #####################################################################
-FOOTER = %{
+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 = %{
+FILE_PAGE = <<-EOF
   <div id="fileHeader">
-    <h1>%short_name%</h1>
+    <h1><%= values["short_name"] %></h1>
     <table class="header-table">
     <tr class="top-aligned-row">
       <td><strong>Path:</strong></td>
-      <td>%full_path%
-IF:cvsurl
-        &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
+      <td><%= values["full_path"] %>
+<% if values["cvsurl"] then %>
+        &nbsp;(<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>%dtm_modified%</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 = %{
+CLASS_PAGE = <<-EOF
     <div id="classHeader">
         <table class="header-table">
         <tr class="top-aligned-row">
-          <td><strong>%classmod%</strong></td>
-          <td class="class-name-in-header">%full_name%</td>
+          <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>
-START:infiles
-IF:full_path_url
-                <a href="%full_path_url%">
-ENDIF:full_path_url
-                %full_path%
-IF:full_path_url
+<% 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>
-ENDIF:full_path_url
-IF:cvsurl
-        &nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
+<% end %>
+<% if infiles["cvsurl"] then %>
+        &nbsp;(<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
+<% end %>
         <br />
-END:infiles
+<% end # values["infiles"] %>
             </td>
         </tr>
 
-IF:parent
+<% if values["parent"] then %>
         <tr class="top-aligned-row">
             <td><strong>Parent:</strong></td>
             <td>
-IF:par_url
-                <a href="%par_url%">
-ENDIF:par_url
-                %parent%
-IF:par_url
+<% if values["par_url"] then %>
+                <a href="<%= values["par_url"] %>">
+<% end %>
+                <%= values["parent"] %>
+<% if values["par_url"] then %>
                </a>
-ENDIF:par_url
+<% end %>
             </td>
         </tr>
-ENDIF:parent
+<% end %>
         </table>
     </div>
-}
+EOF
 
 
 #####################################################################
 ### M E T H O D   L I S T   T E M P L A T E
 #####################################################################
 
-METHOD_LIST = %{
+METHOD_LIST = <<-EOF
 
   <div id="contextContent">
-IF:diagram
+<% if values["diagram"] then %>
     <div id="diagram">
-      %diagram%
+      <%= values["diagram"] %>
     </div>
-ENDIF:diagram
+<% end %>
 
-IF:description
+<% if values["description"] then %>
     <div id="description">
-      %description%
+      <%= values["description"] %>
     </div>
-ENDIF:description
+<% end %>
 
-IF:requires
+<% if values["requires"] then %>
     <div id="requires-list">
       <h3 class="section-bar">Required files</h3>
 
       <div class="name-list">
-START:requires
-      HREF:aref:name:&nbsp;&nbsp;
-END:requires
+<% values["requires"].each do |requires| %>
+        <%= href requires["aref"], requires["name"] %>&nbsp;&nbsp;
+<% end # values["requires"] %>
       </div>
     </div>
-ENDIF:requires
+<% end %>
 
-IF:toc
+<% if values["toc"] then %>
     <div id="contents-list">
       <h3 class="section-bar">Contents</h3>
       <ul>
-START:toc
-      <li><a href="#%href%">%secname%</a></li>
-END:toc
+<% values["toc"].each do |toc| $stderr.puts({ :toc => toc }.inspect) %>
+      <li><a href="#<%= values["href"] %>"><%= values["secname"] %></a></li>
+<% end # values["toc"] %>
      </ul>
-ENDIF:toc
+<% end %>
    </div>
 
-IF:methods
+<% if values["methods"] then %>
     <div id="method-list">
       <h3 class="section-bar">Methods</h3>
 
       <div class="name-list">
-START:methods
-      HREF:aref:name:&nbsp;&nbsp;
-END:methods
+<% values["methods"].each do |methods| %>
+        <%= href methods["aref"], methods["name"] %>&nbsp;&nbsp;
+<% end # values["methods"] %>
       </div>
     </div>
-ENDIF:methods
+<% end %>
 
   </div>
 
 
     <!-- if includes -->
-IF:includes
+<% if values["includes"] then %>
     <div id="includes">
       <h3 class="section-bar">Included Modules</h3>
 
       <div id="includes-list">
-START:includes
-        <span class="include-name">HREF:aref:name:</span>
-END:includes
+<% values["includes"].each do |includes| %>
+        <span class="include-name"><%= href includes["aref"], includes["name"] %></span>
+<% end # values["includes"] %>
       </div>
     </div>
-ENDIF:includes
+<% end %>
 
-START:sections
+<% values["sections"].each do |sections| %>
     <div id="section">
-IF:sectitle
-      <h2 class="section-title"><a name="%secsequence%">%sectitle%</a></h2>
-IF:seccomment
+<% if sections["sectitle"] then %>
+      <h2 class="section-title"><a name="<%= sections["secsequence"] %>"><%= sections["sectitle"] %></a></h2>
+<% if sections["seccomment"] then %>
       <div class="section-comment">
-        %seccomment%
-      </div>      
-ENDIF:seccomment
-ENDIF:sectitle
+        <%= sections["seccomment"] %>
+      </div>
+<% end %>
+<% end %>
 
-IF:classlist
+<% if values["classlist"] then %>
     <div id="class-list">
       <h3 class="section-bar">Classes and Modules</h3>
 
-      %classlist%
+      <%= values["classlist"] %>
     </div>
-ENDIF:classlist
+<% end %>
 
-IF:constants
+<% if values["constants"] then %>
     <div id="constants-list">
       <h3 class="section-bar">Constants</h3>
 
       <div class="name-list">
         <table summary="Constants">
-START:constants
+<% values["constants"].each do |constants| $stderr.puts({ :constants => constants }.inspect) %>
         <tr class="top-aligned-row context-row">
-          <td class="context-item-name">%name%</td>
+          <td class="context-item-name"><%= values["name"] %></td>
           <td>=</td>
-          <td class="context-item-value">%value%</td>
-IF:desc
+          <td class="context-item-value"><%= values["value"] %></td>
+<% if values["desc"] then %>
           <td width="3em">&nbsp;</td>
-          <td class="context-item-desc">%desc%</td>
-ENDIF:desc
+          <td class="context-item-desc"><%= values["desc"] %></td>
+<% end %>
         </tr>
-END:constants
+<% end # values["constants"] %>
         </table>
       </div>
     </div>
-ENDIF:constants
+<% end %>
 
-IF:aliases
+<% if values["aliases"] then %>
     <div id="aliases-list">
       <h3 class="section-bar">External Aliases</h3>
 
       <div class="name-list">
                         <table summary="aliases">
-START:aliases
+<% values["aliases"].each do |aliases| $stderr.puts({ :aliases => aliases }.inspect) %>
         <tr class="top-aligned-row context-row">
-          <td class="context-item-name">%old_name%</td>
+          <td class="context-item-name"><%= values["old_name"] %></td>
           <td>-&gt;</td>
-          <td class="context-item-value">%new_name%</td>
+          <td class="context-item-value"><%= values["new_name"] %></td>
         </tr>
-IF:desc
+<% if values["desc"] then %>
       <tr class="top-aligned-row context-row">
         <td>&nbsp;</td>
-        <td colspan="2" class="context-item-desc">%desc%</td>
+        <td colspan="2" class="context-item-desc"><%= values["desc"] %></td>
       </tr>
-ENDIF:desc
-END:aliases
-                        </table>
+<% end %>
+<% end # values["aliases"] %>
+        </table>
       </div>
     </div>
-ENDIF:aliases
+<% end %>
 
 
-IF:attributes
+<% if values["attributes"] then %>
     <div id="attribute-list">
       <h3 class="section-bar">Attributes</h3>
 
       <div class="name-list">
         <table>
-START:attributes
+<% values["attributes"].each do |attributes| $stderr.puts({ :attributes => attributes }.inspect) %>
         <tr class="top-aligned-row context-row">
-          <td class="context-item-name">%name%</td>
-IF:rw
-          <td class="context-item-value">&nbsp;[%rw%]&nbsp;</td>
-ENDIF:rw
-IFNOT:rw
+          <td class="context-item-name"><%= values["name"] %></td>
+<% if values["rw"] then %>
+          <td class="context-item-value">&nbsp;[<%= values["rw"] %>]&nbsp;</td>
+<% end %>
+<% unless values["rw"] then %>
           <td class="context-item-value">&nbsp;&nbsp;</td>
-ENDIF:rw
-          <td class="context-item-desc">%a_desc%</td>
+<% end %>
+          <td class="context-item-desc"><%= values["a_desc"] %></td>
         </tr>
-END:attributes
+<% end # values["attributes"] %>
         </table>
       </div>
     </div>
-ENDIF:attributes
+<% end %>
       
 
 
     <!-- if method_list -->
-IF:method_list
+<% if sections["method_list"] then %>
     <div id="methods">
-START:method_list
-IF:methods
-      <h3 class="section-bar">%type% %category% methods</h3>
+<% sections["method_list"].each do |method_list| %>
+<% if method_list["methods"] then %>
+      <h3 class="section-bar"><%= method_list["type"] %> <%= method_list["category"] %> methods</h3>
 
-START:methods
-      <div id="method-%aref%" class="method-detail">
-        <a name="%aref%"></a>
+<% method_list["methods"].each do |methods| %>
+      <div id="method-<%= methods["aref"] %>" class="method-detail">
+        <a name="<%= methods["aref"] %>"></a>
 
         <div class="method-heading">
-IF:codeurl
-          <a href="%codeurl%" target="Code" class="method-signature"
-            onclick="popupCode('%codeurl%');return false;">
-ENDIF:codeurl
-IF:sourcecode
-          <a href="#%aref%" class="method-signature">
-ENDIF:sourcecode
-IF:callseq
-          <span class="method-name">%callseq%</span>
-ENDIF:callseq
-IFNOT:callseq
-          <span class="method-name">%name%</span><span class="method-args">%params%</span>
-ENDIF:callseq
-IF:codeurl
+<% 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>
-ENDIF:codeurl
-IF:sourcecode
+<% end %>
+<% if methods["sourcecode"] then %>
           </a>
-ENDIF:sourcecode
+<% end %>
         </div>
-      
+
         <div class="method-description">
-IF:m_desc
-          %m_desc%
-ENDIF:m_desc
-IF:sourcecode
+<% if methods["m_desc"] then %>
+          <%= methods["m_desc"] %>
+<% end %>
+<% if methods["sourcecode"] then %>
           <p><a class="source-toggle" href="#"
-            onclick="toggleCode('%aref%-source');return false;">[Source]</a></p>
-          <div class="method-source-code" id="%aref%-source">
+            onclick="toggleCode('<%= methods["aref"] %>-source');return false;">[Source]</a></p>
+          <div class="method-source-code" id="<%= methods["aref"] %>-source">
 <pre>
-%sourcecode%
+<%= methods["sourcecode"] %>
 </pre>
           </div>
-ENDIF:sourcecode
+<% end %>
         </div>
       </div>
 
-END:methods
-ENDIF:methods
-END:method_list
+<% end # method_list["methods"] %>
+<% end %>
+<% end # sections["method_list"] %>
 
     </div>
-ENDIF:method_list
-END:sections
-}
+<% end %>
+<% end # values["sections"] %>
+EOF
 
 
 #####################################################################
@@ -610,7 +610,7 @@
 
 BODY = HEADER + %{
 
-!INCLUDE!  <!-- banner header -->
+<%= template_include %>  <!-- banner header -->
 
   <div id="bodyContent">
 
@@ -626,18 +626,18 @@
 ### S O U R C E   C O D E   T E M P L A T E
 #####################################################################
 
-SRC_PAGE = XHTML_PREAMBLE + %{
+SRC_PAGE = XHTML_PREAMBLE + <<-EOF
 <html>
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
-  <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
+  <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>%code%</pre>
+  <pre><%= values["code"] %></pre>
 </body>
 </html>
-}
+EOF
 
 
 #####################################################################
@@ -645,29 +645,29 @@
 #####################################################################
 
 FR_INDEX_BODY = %{
-!INCLUDE!
+<%= template_include %>
 }
 
 FILE_INDEX = XHTML_PREAMBLE + %{
 <!--
 
-    %list_title%
+    <%= values["list_title"] %>
 
   -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
-  <title>%list_title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
-  <link rel="stylesheet" href="%style_url%" type="text/css" />
+  <title><%= values["list_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 id="index">
-  <h1 class="section-bar">%list_title%</h1>
+  <h1 class="section-bar"><%= values["list_title"] %></h1>
   <div id="index-entries">
-START:entries
-    <a href="%href%">%name%</a><br />
-END:entries
+<% values["entries"].each do |entries| %>
+    <a href="<%= entries["href"] %>"><%= entries["name"] %></a><br />
+<% end # values["entries"] %>
   </div>
 </div>
 </body>
@@ -677,20 +677,20 @@
 CLASS_INDEX = FILE_INDEX
 METHOD_INDEX = FILE_INDEX
 
-INDEX = %{<?xml version="1.0" encoding="%charset%"?>
-<!DOCTYPE html 
+INDEX = %{<?xml version="1.0" encoding="<%= values["charset"] %>"?>
+<!DOCTYPE html
      PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
 
 <!--
 
-    %title%
+    <%= values["title"] %>
 
   -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
+  <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%">
@@ -698,7 +698,7 @@
         <frame src="fr_class_index.html"  name="Classes" />
         <frame src="fr_method_index.html" name="Methods" />
     </frameset>
-    <frame src="%initial_page%" name="docwin" />
+    <frame src="<%= values["initial_page"] %>" name="docwin" />
 </frameset>
 </html>
 }
Index: lib/rdoc/generators/template/html/hefss.rb
===================================================================
--- lib/rdoc/generators/template/html/hefss.rb	(revision 14934)
+++ lib/rdoc/generators/template/html/hefss.rb	(revision 14935)
@@ -112,9 +112,9 @@
 
 BODY = %{
 <html><head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%">
-  <link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
+  <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" language="JavaScript">
   <!--
   function popCode(url) {
@@ -125,68 +125,76 @@
 </head>
 <body bgcolor="#BBBBBB">
 
-!INCLUDE!  <!-- banner header -->
+<%= template_include %>  <!-- banner header -->
 
-IF:diagram
+<% if values["diagram"] then %>
 <table width="100%"><tr><td align="center">
-%diagram%
+<%= values["diagram"] %>
 </td></tr></table>
-ENDIF:diagram
+<% end %>
 
-IF:description
-<div class="description">%description%</div>
-ENDIF:description
+<% if values["description"] then %>
+<div class="description"><%= values["description"] %></div>
+<% end %>
 
-IF:requires
+<% if values["requires"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Required files</td></tr>
 </table><br />
 <div class="name-list">
-START:requires
-HREF:aref:name:
-END:requires
-ENDIF:requires
+<% values["requires"].each do |requires| %>
+<%= href requires["aref"], requires["name"] %>
+<% end # values["requires"] %>
+<% end %>
 </div>
 
-IF:methods
+<% if values["sections"] then %>
+<% values["sections"].each do |sections| %>
+<% 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">Subroutines and Functions</td></tr>
 </table><br />
 <div class="name-list">
-START:methods
-HREF:aref:name:,
-END:methods
+<% method_list["methods"].each do |methods| %>
+<a href="<%= methods["codeurl"] %>" target="source"><%= methods["name"] %></a>
+<% end # values["methods"] %>
 </div>
-ENDIF:methods
+<% end %>
+<% end # values["method_list"] %>
+<% end %>
 
-IF:attributes
+<% if sections["attributes"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Arguments</td></tr>
 </table><br />
 <table cellspacing="5">
-START:attributes
+<% sections["attributes"].each do |attributes| %>
      <tr valign="top">
-IF:rw
-       <td align="center" class="attr-rw">&nbsp;[%rw%]&nbsp;</td>
-ENDIF:rw
-IFNOT:rw
+<% if attributes["rw"] then %>
+       <td align="center" class="attr-rw">&nbsp;[<%= attributes["rw"] %>]&nbsp;</td>
+<% end %>
+<% unless attributes["rw"] then %>
        <td></td>
-ENDIF:rw
-       <td class="attr-name">%name%</td>
-       <td>%a_desc%</td>
+<% end %>
+       <td class="attr-name"><%= attributes["name"] %></td>
+       <td><%= attributes["a_desc"] %></td>
      </tr>
-END:attributes
+<% end # values["attributes"] %>
 </table>
-ENDIF:attributes
+<% end %>
+<% end # values["sections"] %>
+<% end %>
 
-IF:classlist
+<% if values["classlist"] then %>
 <table cellpadding="5" width="100%">
 <tr><td class="tablesubtitle">Modules</td></tr>
 </table><br />
-%classlist%<br />
-ENDIF:classlist
+<%= values["classlist"] %><br />
+<% end %>
 
-  !INCLUDE!  <!-- method descriptions -->
+  <%= template_include %>  <!-- method descriptions -->
 
 </body>
 </html>
@@ -198,19 +206,19 @@
 <table width="100%">
  <tr class="title-row">
  <td><table width="100%"><tr>
-   <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font>%short_name%</td>
+   <td class="big-title-font" colspan="2"><font size="-3"><b>File</b><br /></font><%= 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">%full_path%
-IF:cvsurl
-				&nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
+           <td class="small-title-font"><%= values["full_path"] %>
+<% if values["cvsurl"] then %>
+				&nbsp;(<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">%dtm_modified%</td>
+           <td class="small-title-font"><%= values["dtm_modified"] %></td>
          </tr>
         </table>
     </td></tr></table></td>
@@ -224,35 +232,35 @@
 <table width="100%" border="0" cellspacing="0">
  <tr class="title-row">
  <td class="big-title-font">
-   <font size="-3"><b>%classmod%</b><br /></font>%full_name%
+   <font size="-3"><b><%= values["classmod"] %></b><br /></font><%= 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">
-START:infiles
-HREF:full_path_url:full_path:
-IF:cvsurl
-&nbsp;(<a href="%cvsurl%"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
-ENDIF:cvsurl
-END:infiles
+<% values["infiles"].each do |infiles| %>
+<%= href infiles["full_path_url"], infiles["full_path"] %>
+<% if infiles["cvsurl"] then %>
+&nbsp;(<a href="<%= infiles["cvsurl"] %>"><acronym title="Concurrent Versioning System">CVS</acronym></a>)
+<% end %>
+<% end # values["infiles"] %>
       </td>
      </tr>
-IF:parent
+<% if values["parent"] then %>
      <tr>
       <td class="small-title-font">Parent:</td>
       <td class="small-title-font">
-IF:par_url
-        <a href="%par_url%" class="cyan">
-ENDIF:par_url
-%parent%
-IF:par_url
+<% if values["par_url"] then %>
+        <a href="<%= values["par_url"] %>" class="cyan">
+<% end %>
+<%= values["parent"] %>
+<% if values["par_url"] then %>
          </a>
-ENDIF:par_url
+<% end %>
       </td>
      </tr>
-ENDIF:parent
+<% end %>
    </table>
   </td>
   </tr>
@@ -262,40 +270,44 @@
 ###################################################################
 
 METHOD_LIST = %{
-IF:includes
+<% if values["includes"] then %>
 <div class="tablesubsubtitle">Uses</div><br />
 <div class="name-list">
-START:includes
-    <span class="method-name">HREF:aref:name:</span>
-END:includes
+<% values["includes"].each do |includes| %>
+    <span class="method-name"><%= href includes["aref"], includes["name"] %></span>
+<% end # values["includes"] %>
 </div>
-ENDIF:includes
+<% end %>
 
-IF:method_list
-START:method_list
-IF:methods
+<% if values["sections"] then %>
+<% values["sections"].each do |sections| %>
+<% 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">%type% %category% methods</td></tr>
+<tr><td class="tablesubtitle"><%= method_list["type"] %> <%= method_list["category"] %> methods</td></tr>
 </table>
-START:methods
+<% method_list["methods"].each do |methods| %>
 <table width="100%" cellspacing="0" cellpadding="5" border="0">
 <tr><td class="methodtitle">
-<a name="%aref%">
-<b>%name%</b>%params% 
-IF:codeurl
-<a href="%codeurl%" target="source" class="srclink">src</a>
-ENDIF:codeurl
+<a name="<%= methods["aref"] %>">
+<b><%= methods["name"] %></b><%= methods["params"] %>
+<% if methods["codeurl"] then %>
+<a href="<%= methods["codeurl"] %>" target="source" class="srclink">src</a>
+<% end %>
 </a></td></tr>
 </table>
-IF:m_desc
+<% if method_list["m_desc"] then %>
 <div class="description">
-%m_desc%
+<%= method_list["m_desc"] %>
 </div>
-ENDIF:m_desc
-END:methods
-ENDIF:methods
-END:method_list
-ENDIF:method_list
+<% end %>
+<% end # method_list["methods"] %>
+<% end %>
+<% end # sections["method_list"] %>
+<% end %>
+<% end # values["sections"] %>
+<% end %>
 }
 
 =begin
@@ -305,8 +317,8 @@
 
 SRC_PAGE = %{
 <html>
-<head><title>%title%</title>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+<head><title><%= values["title"] %></title>
+<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 <style type="text/css">
   .kw { color: #3333FF; font-weight: bold }
   .cmt { color: green; font-style: italic }
@@ -324,7 +336,7 @@
 </style>
 </head>
 <body bgcolor="#BBBBBB">
-<pre>%code%</pre>
+<pre><%= values["code"] %></pre>
 </body>
 </html>
 }
@@ -332,13 +344,13 @@
 ########################## Index ################################
 
 FR_INDEX_BODY = %{
-!INCLUDE!
+<%= template_include %>
 }
 
 FILE_INDEX = %{
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+<meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 <style type="text/css">
 <!--
   body {
@@ -360,16 +372,16 @@
   text-align: center;
   width: 100%;
 }
-  
+
 -->
 </style>
 <base target="docwin">
 </head>
 <body>
-<div class="banner">%list_title%</div>
-START:entries
-<a href="%href%">%name%</a><br />
-END:entries
+<div class="banner"><%= values["list_title"] %></div>
+<% values["entries"].each do |entries| %>
+<a href="<%= entries["href"] %>"><%= entries["name"] %></a><br />
+<% end # values["entries"] %>
 </body></html>
 }
 
@@ -379,8 +391,8 @@
 INDEX = %{
 <html>
 <head>
-  <title>%title%</title>
-  <meta http-equiv="Content-Type" content="text/html; charset=%charset%">
+  <title><%= values["title"] %></title>
+  <meta http-equiv="Content-Type" content="text/html; charset=<%= values["charset"] %>">
 </head>
 
 <frameset cols="20%,*">
@@ -390,7 +402,7 @@
         <frame src="fr_method_index.html" name="Subroutines and Functions">
     </frameset>
     <frameset rows="80%,20%">
-      <frame  src="%initial_page%" name="docwin">
+      <frame  src="<%= values["initial_page"] %>" name="docwin">
       <frame  src="blank.html" name="source">
     </frameset>
     <noframes>
Index: lib/rdoc/generators/template/chm/chm.rb
===================================================================
--- lib/rdoc/generators/template/chm/chm.rb	(revision 14934)
+++ lib/rdoc/generators/template/chm/chm.rb	(revision 14935)
@@ -1,5 +1,4 @@
-module RDoc
-module Page
+module RDoc::Page
 
 require "rdoc/generators/template/html/html"
 
@@ -13,17 +12,17 @@
 [OPTIONS]
 Auto Index = Yes
 Compatibility=1.1 or later
-Compiled file=%opname%.chm
+Compiled file=<%= values["opname"] %>.chm
 Contents file=contents.hhc
 Full-text search=Yes
 Index file=index.hhk
 Language=0x409 English(United States)
-Title=%title%
+Title=<%= values["title"] %>
 
 [FILES]
-START:all_html_files
-%html_file_name%
-END:all_html_files
+<% values["all_html_files"].each do |all_html_files| %>
+<%= all_html_files["html_file_name"] %>
+<% end # values["all_html_files"] %>
 }
 
 CONTENTS = %{
@@ -39,28 +38,27 @@
 	<param name="ImageType" value="Folder">
 </OBJECT>
 <UL>
-START:contents
+<% values["contents"].each do |contents| %>
 	<LI> <OBJECT type="text/sitemap">
-		<param name="Name" value="%c_name%">
-		<param name="Local" value="%ref%">
+		<param name="Name" value="<%= contents["c_name"] %>">
+		<param name="Local" value="<%= contents["ref"] %>">
 		</OBJECT>
-IF:methods
+<% if contents["methods"] then %>
 <ul>
-START:methods
+<% contents["methods"].each do |methods| %>
 	<LI> <OBJECT type="text/sitemap">
-		<param name="Name" value="%name%">
-		<param name="Local" value="%aref%">
+		<param name="Name" value="<%= methods["name"] %>">
+		<param name="Local" value="<%= methods["aref"] %>">
 		</OBJECT>
-END:methods
+<% end # contents["methods"] %>
 </ul>
-ENDIF:methods
+<% end %>
         </LI>
-END:contents
+<% end # values["contents"] %>
 </UL>
 </BODY></HTML>
 }
 
-
 CHM_INDEX  = %{
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
 <HTML>
@@ -74,14 +72,15 @@
 	<param name="ImageType" value="Folder">
 </OBJECT>
 <UL>
-START:index
+<% values["index"].each do |index| %>
 	<LI> <OBJECT type="text/sitemap">
-		<param name="Name" value="%name%">
-		<param name="Local" value="%aref%">
+		<param name="Name" value="<%= index["name"] %>">
+		<param name="Local" value="<%= index["aref"] %>">
 		</OBJECT>
-END:index
+<% end # values["index"] %>
 </UL>
 </BODY></HTML>
 }
+
 end
-end
+
Index: lib/rdoc/template.rb
===================================================================
--- lib/rdoc/template.rb	(revision 14934)
+++ lib/rdoc/template.rb	(revision 14935)
@@ -1,234 +1,63 @@
-# Cheap-n-cheerful HTML page template system. You create a 
-# template containing:
+require 'erb'
+
+##
+# An ERB wrapper.
 #
-# * variable names between percent signs (<tt>%fred%</tt>)
-# * blocks of repeating stuff:
+# This TemplatePage operates similarly to RDoc 1.x's TemplatePage, but uses
+# ERB instead of a custom template language.
 #
-#     START:key
-#       ... stuff
-#     END:key
+# Converting from a RDoc 1.x template to an RDoc 2.x template is fairly easy.
 #
-# You feed the code a hash. For simple variables, the values
-# are resolved directly from the hash. For blocks, the hash entry
-# corresponding to +key+ will be an array of hashes. The block will
-# be generated once for each entry. Blocks can be nested arbitrarily
-# deeply.
+# * %blah% becomes <%= values["blah"] %>
+# * !INCLUDE! becomes <%= template_include %>
+# * HREF:aref:name becomes <%= href values["aref"], values["name"] %>
+# * IF:blah becomes <% if values["blah"] then %>
+# * IFNOT:blah becomes <% unless values["blah"] then %>
+# * ENDIF:blah becomes <% end %>
+# * START:blah becomes <% values["blah"].each do |blah| %>
+# * END:blah becomes <% end %>
 #
-# The template may also contain
+# To make nested loops easier to convert, start by converting START statements
+# to:
 #
-#   IF:key
-#     ... stuff
-#   ENDIF:key
+#   <% values["blah"].each do |blah| $stderr.puts blah.keys %>
 #
-# _stuff_ will only be included in the output if the corresponding
-# key is set in the value hash.
-#
-# Usage:  Given a set of templates <tt>T1, T2,</tt> etc
-#
-#            values = { "name" => "Dave", state => "TX" }
-#
-#            t = TemplatePage.new(T1, T2, T3)
-#            File.open(name, "w") {|f| t.write_html_on(f, values)}
-#         or
-#            res = ''
-#            t.write_html_on(res, values)
-#
-#
+# So you can see what is being used inside which loop.
 
 class RDoc::TemplatePage
 
-  ##########
-  # A context holds a stack of key/value pairs (like a symbol
-  # table). When asked to resolve a key, it first searches the top of
-  # the stack, then the next level, and so on until it finds a match
-  # (or runs out of entries)
+  ##
+  # Create a new TemplatePage that will use +templates+.
 
-  class Context
-    def initialize
-      @stack = []
-    end
-
-    def push(hash)
-      @stack.push(hash)
-    end
-
-    def pop
-      @stack.pop
-    end
-
-    # Find a scalar value, throwing an exception if not found. This
-    # method is used when substituting the %xxx% constructs
-
-    def find_scalar(key)
-      @stack.reverse_each do |level|
-        if val = level[key]
-          return val unless val.kind_of? Array
-        end
-      end
-      raise "Template error: can't find variable '#{key}'"
-    end
-
-    # Lookup any key in the stack of hashes
-
-    def lookup(key)
-      @stack.reverse_each do |level|
-        val = level[key]
-        return val if val
-      end
-      nil
-    end
+  def initialize(*templates)
+    @templates = templates
   end
 
-  #########
-  # Simple class to read lines out of a string
+  ##
+  # Returns "<a href=\"#{ref}\">#{name}</a>"
 
-  class LineReader
-    # we're initialized with an array of lines
-    def initialize(lines)
-      @lines = lines
+  def href(ref, name)
+    if ref then
+      "<a href=\"#{ref}\">#{name}</a>"
+    else
+      name
     end
-
-    # read the next line 
-    def read
-      @lines.shift
-    end
-
-    # Return a list of lines up to the line that matches
-    # a pattern. That last line is discarded.
-    def read_up_to(pattern)
-      res = []
-      while line = read
-        if pattern.match(line)
-          return LineReader.new(res) 
-        else
-          res << line
-        end
-      end
-      raise "Missing end tag in template: #{pattern.source}"
-    end
-
-    # Return a copy of ourselves that can be modified without
-    # affecting us
-    def dup
-      LineReader.new(@lines.dup)
-    end
   end
 
+  ##
+  # Process the template using +values+, writing the result to +io+.
 
+  def write_html_on(io, values)
+    template_include = ""
 
-  # +templates+ is an array of strings containing the templates.
-  # We start at the first, and substitute in subsequent ones
-  # where the string <tt>!INCLUDE!</tt> occurs. For example,
-  # we could have the overall page template containing
-  #
-  #   <html><body>
-  #     <h1>Master</h1>
-  #     !INCLUDE!
-  #   </bost></html>
-  #
-  # and substitute subpages in to it by passing [master, sub_page].
-  # This gives us a cheap way of framing pages
+    b = binding
 
-  def initialize(*templates)
-    result = "!INCLUDE!"
-    templates.each do |content|
-      result.sub!(/!INCLUDE!/, content)
+    @templates.reverse_each do |template|
+      template_include = ERB.new(template).result b
     end
-    @lines = LineReader.new(result.split($/))
-  end
 
-  # Render the templates into HTML, storing the result on +op+ 
-  # using the method <tt><<</tt>. The <tt>value_hash</tt> contains
-  # key/value pairs used to drive the substitution (as described above)
-
-  def write_html_on(op, value_hash)
-    @context = Context.new
-    op << substitute_into(@lines, value_hash).tr("\000", '\\')
+    io.write template_include
   end
 
-
-  # Substitute a set of key/value pairs into the given template. 
-  # Keys with scalar values have them substituted directly into
-  # the page. Those with array values invoke <tt>substitute_array</tt>
-  # (below), which examples a block of the template once for each 
-  # row in the array.
-  #
-  # This routine also copes with the <tt>IF:</tt>_key_ directive,
-  # removing chunks of the template if the corresponding key
-  # does not appear in the hash, and the START: directive, which
-  # loops its contents for each value in an array
-
-  def substitute_into(lines, values)
-    @context.push(values)
-    skip_to = nil
-    result = []
-
-    while line = lines.read
-
-      case line
-
-      when /^IF:(\w+)/
-        lines.read_up_to(/^ENDIF:#$1/) unless @context.lookup($1)
-
-    when /^IFNOT:(\w+)/
-        lines.read_up_to(/^ENDIF:#$1/) if @context.lookup($1)
-
-      when /^ENDIF:/
-        ;
-
-      when /^START:(\w+)/
-        tag = $1
-        body = lines.read_up_to(/^END:#{tag}/)
-        inner_values = @context.lookup(tag)
-        raise "unknown tag: #{tag}" unless inner_values
-        raise "not array: #{tag}"   unless inner_values.kind_of?(Array)
-        inner_values.each do |vals|
-          result << substitute_into(body.dup, vals)
-        end
-      else
-        result << expand_line(line.dup)
-      end
-    end
-
-    @context.pop
-
-    result.join("\n")
-  end
-
-  # Given an individual line, we look for %xxx% constructs and 
-  # HREF:ref:name: constructs, substituting for each.
-
-  def expand_line(line)
-    # Generate a cross reference if a reference is given,
-    # otherwise just fill in the name part
-
-    line.gsub!(/HREF:(\w+?):(\w+?):/) {
-      ref = @context.lookup($1)
-      name = @context.find_scalar($2)
-
-      if ref and !ref.kind_of?(Array)
-	"<a href=\"#{ref}\">#{name}</a>"
-      else
-	name
-      end
-    }
-
-    # Substitute in values for %xxx% constructs.  This is made complex
-    # because the replacement string may contain characters that are
-    # meaningful to the regexp (like \1)
-
-    line = line.gsub(/%([a-zA-Z]\w*)%/) {
-      val = @context.find_scalar($1) 
-      val.tr('\\', "\000")
-    }
-
-
-    line
-  rescue Exception => e
-    $stderr.puts "Error in template: #{e}"
-    $stderr.puts "Original line: #{line}"
-    exit
-  end
-
 end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧]