rdoc-babel 1.2.1 → 1.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/HISTORY.rdoc +16 -0
- data/README.rdoc +17 -16
- data/lib/rdoc/generator/babel.rb +82 -15
- data/lib/rdoc/generator/ruby-lang/class-page.html.erb +33 -45
- data/lib/rdoc/generator/ruby-lang/file-page.html.erb +8 -5
- data/lib/rdoc/generator/ruby-lang/images/close_black_18dp.svg +1 -0
- data/lib/rdoc/generator/ruby-lang/images/menu_black_18dp.svg +1 -0
- data/lib/rdoc/generator/ruby-lang/index.html.erb +2 -7
- data/lib/rdoc/generator/ruby-lang/indexes.html.erb +1 -1
- data/lib/rdoc/generator/ruby-lang/rdoc.css +193 -71
- data/lib/rdoc/generator/ruby-lang/scripts/indexFrame.js +183 -32
- data/lib/rdoc/generator/ruby-lang/scripts/mainFrame.js +202 -33
- data/lib/rdoc/generator/ruby-lang/scripts/quicksearch.js +11 -5
- metadata +6 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: b6ae764381b167bd89156dc785a2a039b9fe66197e26ab1887b565225279c0de
         | 
| 4 | 
            +
              data.tar.gz: 07c955b085e7aa2c195363b40cd0904bcc3a871727f19089d6060546131d9647
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 011f9c6d9f66bbf81ae89064b8de0b4973dd397409ba439a8d6b03a8bad2549db5542e4f1d4c607a9c53c672a3d30dcfe152ebd9a055522bad9f70f10aa54402
         | 
| 7 | 
            +
              data.tar.gz: 5aa917b782b26a0e1adc5217168d1eaa16e19d9a447eb664bd5ced9e52f0a3eeff2b12fb83660b61f0af1f8fcf572d8423ba82e74e39ef99cf761bb8441ee8ba
         | 
    
        data/HISTORY.rdoc
    CHANGED
    
    | @@ -1,3 +1,19 @@ | |
| 1 | 
            +
            === 1.4.1
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * remove an extra </span> in class HTML
         | 
| 4 | 
            +
            * use flex to display the header components
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            === 1.4.0
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            * add a TOC button on the top right
         | 
| 9 | 
            +
            * fix initial sizing in the left pane
         | 
| 10 | 
            +
            * fix too wide <pre> sections
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            === 1.3.0
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            * switch from frameset to iframe
         | 
| 15 | 
            +
            * highlight the current file/class/method in the left frame
         | 
| 16 | 
            +
             | 
| 1 17 | 
             
            === 1.2.1
         | 
| 2 18 |  | 
| 3 19 | 
             
            * filter: only search in link text (skip class/method type)
         | 
    
        data/README.rdoc
    CHANGED
    
    | @@ -16,39 +16,40 @@ and to contribute alternate templates or style sheets. | |
| 16 16 | 
             
            - Dual-frame output, with indexes on the left.
         | 
| 17 17 | 
             
            - Search boxes for classes and methods.
         | 
| 18 18 | 
             
            - Links to undocumented classes/methods are grayed.
         | 
| 19 | 
            -
            - Highlights  | 
| 19 | 
            +
            - Highlights the current file/class/method in the left frame.
         | 
| 20 | 
            +
            - Highlights the target method, attribute or constant in the main frame.
         | 
| 20 21 | 
             
            - Adds links to ancestor methods/attributes.
         | 
| 21 22 | 
             
            - Borrows some ideas (and one icon) from Darkfish.
         | 
| 22 | 
            -
            - Tested on Firefox  | 
| 23 | 
            +
            - Tested on Firefox 125.<br>
         | 
| 24 | 
            +
              If using the <tt>file://</tt> protocol, the "same origin policy" for local files must be turned off:<br>
         | 
| 25 | 
            +
              <tt>about:config</tt> > <tt>security.fileuri.strict_origin_policy = false</tt>
         | 
| 23 26 |  | 
| 24 27 | 
             
            == Synopsis
         | 
| 25 28 |  | 
| 26 29 | 
             
            To output documentation formatted by Babel, use the <tt>--format/-f</tt>
         | 
| 27 | 
            -
            RDoc switch. For instance, to generate the documentation for Ruby core:
         | 
| 30 | 
            +
            RDoc switch. For instance, to generate the documentation for Ruby core and stdlib:
         | 
| 28 31 |  | 
| 29 | 
            -
               | 
| 30 | 
            -
               | 
| 31 | 
            -
               | 
| 32 | 
            +
              > gem install rdoc-babel
         | 
| 33 | 
            +
              > cd /ruby/src
         | 
| 34 | 
            +
              > rdoc -f babel -a -t "Ruby Core + Stdlib" -o /docs/ruby-core
         | 
| 32 35 |  | 
| 33 36 | 
             
            Using rake:
         | 
| 34 37 |  | 
| 35 38 | 
             
              require 'rdoc/task'
         | 
| 36 39 |  | 
| 37 40 | 
             
              RDoc::Task.new do |t|
         | 
| 38 | 
            -
                Dir.chdir ' | 
| 41 | 
            +
                Dir.chdir '/ruby/src'
         | 
| 39 42 | 
             
                rdoc.options <<
         | 
| 40 43 | 
             
                  '--format' << 'babel' <<
         | 
| 41 44 | 
             
                  '--all'
         | 
| 42 | 
            -
                t.title = "Ruby  | 
| 43 | 
            -
                t.rdoc_dir = ' | 
| 44 | 
            -
                t.rdoc_files.concat Dir['*.c']
         | 
| 45 | 
            +
                t.title = "Ruby Core + Stdlib"
         | 
| 46 | 
            +
                t.rdoc_dir = '/docs/ruby-core'
         | 
| 45 47 | 
             
              end
         | 
| 46 48 |  | 
| 47 49 | 
             
            To make Babel the default format when generating RDoc documentation,
         | 
| 48 | 
            -
            define the RDOCOPT environment variable | 
| 49 | 
            -
            (e.g., <tt>~/.bashrc</tt>):
         | 
| 50 | 
            +
            define the RDOCOPT environment variable:
         | 
| 50 51 |  | 
| 51 | 
            -
               | 
| 52 | 
            +
              RDOCOPT="--format babel"
         | 
| 52 53 |  | 
| 53 54 | 
             
            == Specific options
         | 
| 54 55 |  | 
| @@ -70,8 +71,8 @@ Babel supports specific options in addition to the standard RDoc options: | |
| 70 71 |  | 
| 71 72 | 
             
            == Requirements
         | 
| 72 73 |  | 
| 73 | 
            -
            - Ruby >=  | 
| 74 | 
            -
            - RDoc >= 5.0 (may work with >=  | 
| 74 | 
            +
            - Ruby >= 3.1.0 (may work with >= 2.5.0, but untested)
         | 
| 75 | 
            +
            - RDoc >= 6.5.0 (may work with >= 5.0, but untested)
         | 
| 75 76 |  | 
| 76 77 | 
             
            == Installation
         | 
| 77 78 |  | 
| @@ -81,7 +82,7 @@ Babel supports specific options in addition to the standard RDoc options: | |
| 81 82 |  | 
| 82 83 | 
             
            (The MIT License)
         | 
| 83 84 |  | 
| 84 | 
            -
            Copyright (c) 2010- | 
| 85 | 
            +
            Copyright (c) 2010-2024 Thierry Lambert
         | 
| 85 86 |  | 
| 86 87 | 
             
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 87 88 | 
             
            a copy of this software and associated documentation files (the
         | 
    
        data/lib/rdoc/generator/babel.rb
    CHANGED
    
    | @@ -33,7 +33,7 @@ class RDoc::Generator::Babel | |
| 33 33 |  | 
| 34 34 | 
             
              RDoc::RDoc.add_generator(self)
         | 
| 35 35 |  | 
| 36 | 
            -
              VERSION = '1. | 
| 36 | 
            +
              VERSION = '1.4.1'
         | 
| 37 37 | 
             
              DESCRIPTION = 'Alternate HTML documentation'
         | 
| 38 38 |  | 
| 39 39 | 
             
              include ERB::Util
         | 
| @@ -157,6 +157,25 @@ class RDoc::Generator::Babel | |
| 157 157 |  | 
| 158 158 | 
             
              def generate
         | 
| 159 159 |  | 
| 160 | 
            +
                # rdoc bug fix: public class/module methods appear as external_aliases (unresolved aliases)
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                @store.all_classes_and_modules.each do |cm|
         | 
| 163 | 
            +
                  next if cm.external_aliases.empty?
         | 
| 164 | 
            +
                  class_level_names = cm.method_list.select { |m| m.type == 'class' }.map(&:name)
         | 
| 165 | 
            +
                  cm.external_aliases.dup.each do |a|
         | 
| 166 | 
            +
                    cm.external_aliases.delete a if class_level_names.include?(a.name)
         | 
| 167 | 
            +
                  end
         | 
| 168 | 
            +
                end
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                # other bug fix: method aliases with singleton mismatch
         | 
| 171 | 
            +
             | 
| 172 | 
            +
                @store.all_classes_and_modules.each do |cm|
         | 
| 173 | 
            +
                  cm.class_method_list.each do |m|
         | 
| 174 | 
            +
                    m.is_alias_for.singleton = true if m.is_alias_for
         | 
| 175 | 
            +
                    m.aliases.each { |a| a.singleton = true }
         | 
| 176 | 
            +
                  end
         | 
| 177 | 
            +
                end
         | 
| 178 | 
            +
             | 
| 160 179 | 
             
                # set instance variables
         | 
| 161 180 |  | 
| 162 181 | 
             
                @output_dir = Pathname.new(@options.op_dir).expand_path(@source_dir)
         | 
| @@ -178,11 +197,25 @@ class RDoc::Generator::Babel | |
| 178 197 | 
             
                    @simple_files
         | 
| 179 198 | 
             
                  end
         | 
| 180 199 |  | 
| 181 | 
            -
                 | 
| 182 | 
            -
             | 
| 183 | 
            -
                   | 
| 184 | 
            -
             | 
| 200 | 
            +
                if @options.main_page
         | 
| 201 | 
            +
                  # look for a TopLevel matching the main page
         | 
| 202 | 
            +
                  @main_page = @all_files.find { |f| f.full_name == @options.main_page }
         | 
| 203 | 
            +
                  if @main_page
         | 
| 204 | 
            +
                    # TODO are there cases where main_page = 'README' for 'lib/README'?
         | 
| 205 | 
            +
                    unless @files_to_display.find { |f| f.full_name == @options.main_page }
         | 
| 206 | 
            +
                      @files_to_display.unshift @main_page
         | 
| 207 | 
            +
                    end
         | 
| 208 | 
            +
                  # look for a class/module with that name
         | 
| 209 | 
            +
                  else
         | 
| 210 | 
            +
                    match = @unique_classes_and_modules.find { |cm| cm.full_name == @options.main_page }
         | 
| 211 | 
            +
                    if match
         | 
| 212 | 
            +
                      @main_page = match
         | 
| 213 | 
            +
                    else
         | 
| 214 | 
            +
                      warn "no such page: --main #{@options.main_page}"
         | 
| 215 | 
            +
                    end
         | 
| 185 216 | 
             
                  end
         | 
| 217 | 
            +
                else
         | 
| 218 | 
            +
                  @main_page = nil
         | 
| 186 219 | 
             
                end
         | 
| 187 220 |  | 
| 188 221 | 
             
                # write the output
         | 
| @@ -263,7 +296,7 @@ class RDoc::Generator::Babel | |
| 263 296 | 
             
              # Returns the first +Context+ object to display in the main frame.
         | 
| 264 297 | 
             
              # This is, in order:
         | 
| 265 298 | 
             
              # - The file designated by the +main_page+ option,
         | 
| 266 | 
            -
              #   if there is a +TopLevel+ with that name.
         | 
| 299 | 
            +
              #   if there is a +TopLevel+ or class/module with that name.
         | 
| 267 300 | 
             
              # - The first simple file that contains a comment
         | 
| 268 301 | 
             
              #   (in the order given on the command line).
         | 
| 269 302 | 
             
              # - The first class or module that contains a comment.
         | 
| @@ -274,19 +307,30 @@ class RDoc::Generator::Babel | |
| 274 307 | 
             
              # - The first file.
         | 
| 275 308 |  | 
| 276 309 | 
             
              def first_page
         | 
| 277 | 
            -
                 | 
| 278 | 
            -
             | 
| 279 | 
            -
                   | 
| 310 | 
            +
                if @main_page
         | 
| 311 | 
            +
                  debug_msg "main as --main: #{@main_page}"
         | 
| 312 | 
            +
                  @main_page
         | 
| 280 313 | 
             
                elsif (file = @simple_files.first)
         | 
| 314 | 
            +
                  debug_msg "main as first simple file: #{file}"
         | 
| 281 315 | 
             
                  file
         | 
| 282 316 | 
             
                elsif (cm = @unique_classes_and_modules.find { |k| !k.comment.empty? })
         | 
| 317 | 
            +
                  debug_msg "main as first module/class with comment: #{cm}"
         | 
| 283 318 | 
             
                  cm
         | 
| 284 | 
            -
                 | 
| 285 | 
            -
             | 
| 319 | 
            +
                # this is not a simple file, so currently not displayed in files
         | 
| 320 | 
            +
                # elsif (file = @files_with_comment.first)
         | 
| 321 | 
            +
                #   debug_msg "main as first file with comment: #{file}"
         | 
| 322 | 
            +
                #   file
         | 
| 286 323 | 
             
                elsif !@unique_classes_and_modules.empty?
         | 
| 287 | 
            -
                  @unique_classes_and_modules.find { |k| k.any_content } | 
| 288 | 
            -
             | 
| 324 | 
            +
                  cm = @unique_classes_and_modules.find { |k| k.any_content }
         | 
| 325 | 
            +
                  if cm
         | 
| 326 | 
            +
                    debug_msg "main as first module/class with any content: #{cm}"
         | 
| 327 | 
            +
                  else
         | 
| 328 | 
            +
                    debug_msg "main as first module/class (no content): #{cm}"
         | 
| 329 | 
            +
                    cm = @unique_classes_and_modules.first
         | 
| 330 | 
            +
                  end
         | 
| 331 | 
            +
                  cm
         | 
| 289 332 | 
             
                else
         | 
| 333 | 
            +
                  debug_msg "main as first file: #{cm}"
         | 
| 290 334 | 
             
                  @all_files.first
         | 
| 291 335 | 
             
                end
         | 
| 292 336 | 
             
              end
         | 
| @@ -450,9 +494,32 @@ protected | |
| 450 494 |  | 
| 451 495 | 
             
                return if @options.dry_run
         | 
| 452 496 |  | 
| 497 | 
            +
                # fix file cross-references
         | 
| 498 | 
            +
                # rdoc:ref handling by RDoc requires that files and classes are stored in the
         | 
| 499 | 
            +
                # root output directory, while we have files and classes in separate subdirectories
         | 
| 500 | 
            +
                output.gsub!(/<a (.*?)\bhref="(.+?)"/) do |match|
         | 
| 501 | 
            +
                  atts = $1
         | 
| 502 | 
            +
                  href = $2
         | 
| 503 | 
            +
                  next match if href[0] == '#'
         | 
| 504 | 
            +
                  path, id = href.split('#')
         | 
| 505 | 
            +
                  # in classes/OptionParser.html:
         | 
| 506 | 
            +
                  # we find for instance <a href="optparse/tutorial_rdoc.html">Tutorial</a>
         | 
| 507 | 
            +
                  # which matches files/doc/optparse/tutorial_rdoc.html
         | 
| 508 | 
            +
                  matches = @all_files.select do |f|
         | 
| 509 | 
            +
                    f.path.end_with?(path) && f.path != path
         | 
| 510 | 
            +
                  end
         | 
| 511 | 
            +
                  next match if matches.empty?
         | 
| 512 | 
            +
                  # we replace optparse/tutorial_rdoc.html by ../files/doc/optparse/tutorial_rdoc.html
         | 
| 513 | 
            +
                  f = matches.first
         | 
| 514 | 
            +
                  actual = Pathname.new(f.path).expand_path(@output_dir).relative_path_from(outfile.dirname).to_s
         | 
| 515 | 
            +
                  next match if actual == path
         | 
| 516 | 
            +
                  actual << '#' << id if id
         | 
| 517 | 
            +
                  %(<a #{atts}href="#{actual}")
         | 
| 518 | 
            +
                end
         | 
| 519 | 
            +
             | 
| 453 520 | 
             
                outfile.dirname.mkpath
         | 
| 454 | 
            -
                outfile.open('w', 0644) do | | 
| 455 | 
            -
                   | 
| 521 | 
            +
                outfile.open('w', 0644) do |io|
         | 
| 522 | 
            +
                  io.print(output)
         | 
| 456 523 | 
             
                end
         | 
| 457 524 |  | 
| 458 525 | 
             
              end
         | 
| @@ -2,65 +2,52 @@ | |
| 2 2 | 
             
            <html lang="en">
         | 
| 3 3 | 
             
            <head>
         | 
| 4 4 | 
             
              <meta charset="<%= @options.charset %>">
         | 
| 5 | 
            -
              <title><%= @class. | 
| 5 | 
            +
              <title><%= @class.full_name %> – <%= h @options.title %></title>
         | 
| 6 6 | 
             
              <link href="<%= @stylesheet_url %>" rel="stylesheet">
         | 
| 7 7 | 
             
              <link href="https://fonts.googleapis.com/css?family=Noto+Sans" rel="stylesheet">
         | 
| 8 8 | 
             
              <script src="<%= @rel_prefix %>/scripts/mainFrame.js" type="text/javascript"></script>
         | 
| 9 9 | 
             
            </head>
         | 
| 10 10 | 
             
            <body>
         | 
| 11 11 |  | 
| 12 | 
            +
            <div id="left-container">
         | 
| 13 | 
            +
            <iframe id="left-frame" src="<%= @rel_prefix %>/indexes.html"></iframe>
         | 
| 14 | 
            +
            <div id="resizer"></div>
         | 
| 15 | 
            +
            </div>
         | 
| 16 | 
            +
            <div id="main-container">
         | 
| 12 17 | 
             
            <div id="header">
         | 
| 13 18 | 
             
              <p class="header-title">
         | 
| 14 19 | 
             
                <span class="prefix"><%= @class.type.capitalize %></span><span class="name"> <%= @class.full_name %></span>
         | 
| 15 20 | 
             
              </p>
         | 
| 16 21 | 
             
              <% if @class.type == 'class' && @class.superclass %>
         | 
| 17 22 | 
             
                <p class="header-title">
         | 
| 18 | 
            -
                <% if  | 
| 19 | 
            -
                  <span class="parent"> < <%= @class.superclass %></span>
         | 
| 23 | 
            +
                <% if @class.superclass.is_a?(String) %>
         | 
| 24 | 
            +
                  <span class="parent">  < <%= @class.superclass %></span>
         | 
| 20 25 | 
             
                <% else %>
         | 
| 21 | 
            -
                   | 
| 26 | 
            +
                  <span class="parent">  < <a href="<%= @class.aref_to @class.superclass.path %>"><%= @class.superclass.full_name %></a></span>
         | 
| 22 27 | 
             
                <% end %>
         | 
| 23 28 | 
             
                </p>
         | 
| 24 29 | 
             
              <% end %>
         | 
| 25 30 | 
             
              <p id="file-info">
         | 
| 31 | 
            +
                <span class="in-files">In:</span>
         | 
| 26 32 | 
             
              <% if @class.in_files.length < 3 %>
         | 
| 27 | 
            -
                <span class=" | 
| 28 | 
            -
             | 
| 29 | 
            -
                  < | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
                   | 
| 33 | 
            -
             | 
| 34 | 
            -
                </span>
         | 
| 35 | 
            -
                <span class="hidden">
         | 
| 36 | 
            -
                  <span class="in-files">In:</span>
         | 
| 37 | 
            -
                  <span class="first-files">
         | 
| 38 | 
            -
                  <% @class.in_files.each do |f| %>
         | 
| 39 | 
            -
                    <a href="#"><%= h f.full_name %></a><br>
         | 
| 40 | 
            -
                  <% end %>
         | 
| 41 | 
            -
                  </span>
         | 
| 33 | 
            +
                <span class="file-list">
         | 
| 34 | 
            +
                <% @class.in_files.each do |f| %>
         | 
| 35 | 
            +
                  <a href="<%= @rel_prefix %>/<%= h f.path %>"><%= h f.full_name %></a><br>
         | 
| 36 | 
            +
                <% end %>
         | 
| 37 | 
            +
                <% if @class.in_files.length == 1 %>
         | 
| 38 | 
            +
                   
         | 
| 39 | 
            +
                <% end %>
         | 
| 42 40 | 
             
                </span>
         | 
| 43 41 | 
             
              <% else %>
         | 
| 44 | 
            -
                <span class=" | 
| 45 | 
            -
                  < | 
| 46 | 
            -
                  < | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
                <span class="hidden">
         | 
| 52 | 
            -
                  <span class="in-files">In:</span>
         | 
| 53 | 
            -
                  <span class="first-files">
         | 
| 54 | 
            -
                    <a href="#"><%= h @class.in_files.first.full_name %></a><br>
         | 
| 55 | 
            -
                    <a href="#" id="show-all-files">(<%= @class.in_files.length - 1 %> more...)</a>
         | 
| 42 | 
            +
                <span class="file-list">
         | 
| 43 | 
            +
                  <a href="<%= @rel_prefix %>/<%= h @class.in_files.first.path %>"><%= h @class.in_files.first.full_name %></a><br>
         | 
| 44 | 
            +
                  <a href="#" id="show-all-files">(<%= @class.in_files.length - 1 %> more...)</a>
         | 
| 45 | 
            +
                  <span id="all-files">
         | 
| 46 | 
            +
                  <% @class.in_files[1..-1].each do |f| %>
         | 
| 47 | 
            +
                    <a href="<%= @rel_prefix %>/<%= h f.path %>"><%= h f.full_name %></a><br>
         | 
| 48 | 
            +
                  <% end %>
         | 
| 56 49 | 
             
                  </span>
         | 
| 57 50 | 
             
                </span>
         | 
| 58 | 
            -
                <br>
         | 
| 59 | 
            -
                <span id="all-files">
         | 
| 60 | 
            -
                <% @class.in_files[1..-1].each do |f| %>
         | 
| 61 | 
            -
                  <a href="<%= @rel_prefix %>/<%= h f.path %>"><%= h f.full_name %></a><br>
         | 
| 62 | 
            -
                <% end %>
         | 
| 63 | 
            -
                </span>
         | 
| 64 51 | 
             
              <% end %>
         | 
| 65 52 | 
             
              </p>
         | 
| 66 53 | 
             
            </div>
         | 
| @@ -69,8 +56,8 @@ | |
| 69 56 |  | 
| 70 57 | 
             
            <%= @class.description %>
         | 
| 71 58 |  | 
| 72 | 
            -
            <!-- class/module aliases -->
         | 
| 73 59 | 
             
            <% unless @class.aliases.empty? %>
         | 
| 60 | 
            +
            <!-- class/module aliases -->
         | 
| 74 61 | 
             
            <div id="class-aliases" class="list">
         | 
| 75 62 | 
             
              <h3><%= @class.type.capitalize %> Aliases</h3>
         | 
| 76 63 | 
             
              <ul>
         | 
| @@ -81,8 +68,8 @@ | |
| 81 68 | 
             
            </div>
         | 
| 82 69 | 
             
            <% end %>
         | 
| 83 70 |  | 
| 84 | 
            -
            <!-- list of methods -->
         | 
| 85 71 | 
             
            <% unless @class.method_list.empty? %>
         | 
| 72 | 
            +
            <!-- list of methods -->
         | 
| 86 73 | 
             
            <div id="method-list" class="list">
         | 
| 87 74 | 
             
              <h3>Methods</h3>
         | 
| 88 75 | 
             
              <% unless @class.class_method_list.empty? %>
         | 
| @@ -104,8 +91,8 @@ | |
| 104 91 | 
             
            </div>
         | 
| 105 92 | 
             
            <% end %>
         | 
| 106 93 |  | 
| 107 | 
            -
            <!-- namespace contents -->
         | 
| 108 94 | 
             
            <% unless @class.non_aliases.empty? %>
         | 
| 95 | 
            +
            <!-- namespace contents -->
         | 
| 109 96 | 
             
            <div id="namespace-list" class="list">
         | 
| 110 97 | 
             
              <h3>Modules and Classes</h3>
         | 
| 111 98 | 
             
              <table class="classes-modules">
         | 
| @@ -119,8 +106,8 @@ | |
| 119 106 | 
             
            </div>
         | 
| 120 107 | 
             
            <% end %>
         | 
| 121 108 |  | 
| 122 | 
            -
            <!-- included modules -->
         | 
| 123 109 | 
             
            <% unless @class.includes.empty? %>
         | 
| 110 | 
            +
            <!-- included modules -->
         | 
| 124 111 | 
             
            <div id="include-list" class="list">
         | 
| 125 112 | 
             
              <h3>Included Modules</h3>
         | 
| 126 113 | 
             
              <ul>
         | 
| @@ -135,8 +122,8 @@ | |
| 135 122 | 
             
            </div>
         | 
| 136 123 | 
             
            <% end %>
         | 
| 137 124 |  | 
| 138 | 
            -
            <!-- constants -->
         | 
| 139 125 | 
             
            <% unless @class.constants.empty? %>
         | 
| 126 | 
            +
            <!-- constants -->
         | 
| 140 127 | 
             
            <div id="constant-list" class="list">
         | 
| 141 128 | 
             
              <h3>Constants</h3>
         | 
| 142 129 | 
             
              <table>
         | 
| @@ -162,8 +149,8 @@ | |
| 162 149 | 
             
            </div>
         | 
| 163 150 | 
             
            <% end %>
         | 
| 164 151 |  | 
| 165 | 
            -
            <!-- external aliases -->
         | 
| 166 152 | 
             
            <% unless @class.external_aliases.empty? %>
         | 
| 153 | 
            +
            <!-- external aliases -->
         | 
| 167 154 | 
             
            <div id="external-aliases" class="list">
         | 
| 168 155 | 
             
              <h3>External Aliases</h3>
         | 
| 169 156 | 
             
              <table>
         | 
| @@ -177,8 +164,8 @@ | |
| 177 164 | 
             
            </div>
         | 
| 178 165 | 
             
            <% end %>
         | 
| 179 166 |  | 
| 180 | 
            -
            <!-- class/module attributes -->
         | 
| 181 167 | 
             
            <% unless @class.class_attributes.empty? %>
         | 
| 168 | 
            +
            <!-- class/module attributes -->
         | 
| 182 169 | 
             
            <div id="class-attributes" class="list">
         | 
| 183 170 | 
             
              <h3><%= @class.type.capitalize %> Attributes</h3>
         | 
| 184 171 | 
             
              <table>
         | 
| @@ -203,8 +190,8 @@ | |
| 203 190 | 
             
            </div>
         | 
| 204 191 | 
             
            <% end %>
         | 
| 205 192 |  | 
| 206 | 
            -
            <!-- instance attributes -->
         | 
| 207 193 | 
             
            <% unless @class.instance_attributes.empty? %>
         | 
| 194 | 
            +
            <!-- instance attributes -->
         | 
| 208 195 | 
             
            <div id="instance-attributes" class="list">
         | 
| 209 196 | 
             
              <h3>Instance Attributes</h3>
         | 
| 210 197 | 
             
              <table>
         | 
| @@ -267,6 +254,7 @@ | |
| 267 254 | 
             
            <% end # @class.methods_by_type.each %>
         | 
| 268 255 |  | 
| 269 256 | 
             
            </div> <!-- #documentation -->
         | 
| 257 | 
            +
            </div> <!-- #main-container -->
         | 
| 270 258 |  | 
| 271 259 | 
             
            </body>
         | 
| 272 260 | 
             
            </html>
         | 
| @@ -2,19 +2,21 @@ | |
| 2 2 | 
             
            <html lang="en">
         | 
| 3 3 | 
             
            <head>
         | 
| 4 4 | 
             
              <meta charset="<%= @options.charset %>">
         | 
| 5 | 
            -
              <title | 
| 5 | 
            +
              <title><%= @file.base_name %> – <%= h @options.title %></title>
         | 
| 6 6 | 
             
              <link href="<%= @stylesheet_url %>" rel="stylesheet">
         | 
| 7 7 | 
             
              <link href="https://fonts.googleapis.com/css?family=Noto+Sans" rel="stylesheet">
         | 
| 8 8 | 
             
              <script src="<%= @rel_prefix %>/scripts/mainFrame.js" type="text/javascript"></script>
         | 
| 9 9 | 
             
            </head>
         | 
| 10 10 | 
             
            <body>
         | 
| 11 | 
            +
            <div id="left-container">
         | 
| 12 | 
            +
            <iframe id="left-frame" src="<%= @rel_prefix %>/indexes.html"></iframe>
         | 
| 13 | 
            +
            <div id="resizer"></div>
         | 
| 14 | 
            +
            </div>
         | 
| 15 | 
            +
            <div id="main-container">
         | 
| 11 16 | 
             
            <div id="header">
         | 
| 12 17 | 
             
              <p class="header-title"><span class="prefix">File</span><span class="name"> <%= @file.base_name %></span></p>
         | 
| 13 18 | 
             
              <p id="file-info">
         | 
| 14 | 
            -
                 | 
| 15 | 
            -
                  Path: <%= @file.absolute_name %><br>
         | 
| 16 | 
            -
                  Modified: <%= @file.last_modified ? @file.last_modified.strftime('%Y-%m-%d %H:%M:%S') : 'unknown' %>
         | 
| 17 | 
            -
                </span>
         | 
| 19 | 
            +
                Path: <%= @file.absolute_name %>
         | 
| 18 20 | 
             
              </p>
         | 
| 19 21 | 
             
            </div>
         | 
| 20 22 | 
             
            <div id="documentation">
         | 
| @@ -54,5 +56,6 @@ | |
| 54 56 | 
             
              </div>
         | 
| 55 57 | 
             
            <% end %>
         | 
| 56 58 | 
             
            </div>
         | 
| 59 | 
            +
            </div>
         | 
| 57 60 | 
             
            </body>
         | 
| 58 61 | 
             
            </html>
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <svg xmlns="http://www.w3.org/2000/svg" height="18px" viewBox="0 0 24 24" width="18px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            <svg xmlns="http://www.w3.org/2000/svg" height="18px" viewBox="0 0 24 24" width="18px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
         | 
| @@ -1,11 +1,6 @@ | |
| 1 1 | 
             
            <!DOCTYPE html>
         | 
| 2 | 
            -
            <html | 
| 2 | 
            +
            <html>
         | 
| 3 3 | 
             
            <head>
         | 
| 4 | 
            -
              <meta  | 
| 5 | 
            -
              <title><%= h @options.title %></title>
         | 
| 4 | 
            +
              <meta http-equiv="refresh" content="0; url=<%= @first_page.path %>" />
         | 
| 6 5 | 
             
            </head>
         | 
| 7 | 
            -
            <frameset cols="20%,*">
         | 
| 8 | 
            -
              <frame name="indexFrame" src="indexes.html">
         | 
| 9 | 
            -
              <frame name="mainFrame" src="<%= @first_page.path %>">
         | 
| 10 | 
            -
            </frameset>
         | 
| 11 6 | 
             
            </html>
         | 
| @@ -7,7 +7,7 @@ | |
| 7 7 | 
             
              <link href="https://fonts.googleapis.com/css?family=Noto+Sans" rel="stylesheet">
         | 
| 8 8 | 
             
              <script src="scripts/quicksearch.js" type="text/javascript"></script>
         | 
| 9 9 | 
             
              <script src="scripts/indexFrame.js" type="text/javascript"></script>
         | 
| 10 | 
            -
              <base target=" | 
| 10 | 
            +
              <base target="_parent">
         | 
| 11 11 | 
             
            </head>
         | 
| 12 12 | 
             
            <body class="index">
         | 
| 13 13 | 
             
            <% $stderr.sync = true %>
         |