模块 RDoc

RDoc 通过解析源代码并提取类、模块、方法、包含和需求定义,为 Ruby 源文件生成文档。它将这些定义与紧邻的前一个注释块中包含的可选文档关联,然后使用输出格式化程序呈现结果。

有关使用 RDoc 编写或生成文档的简单介绍,请参阅 README。

路线图

如果您认为在 RDoc 中发现了错误,请参阅 CONTRIBUTING 中的错误部分

如果您想使用 RDoc 为 Ruby 源文件创建文档,请参阅 RDoc::Markup 并参考 rdoc --help 获取命令行用法。

如果您想设置默认的标记格式,请参阅 RDoc::Markup 中的标记格式

如果您想将 rdoc 配置存储在您的 gem 中(例如默认标记格式),请参阅 RDoc::Options 中的已保存选项

如果您想为 Ruby 文件编写文档,请参阅 RDoc::Parser::Ruby

如果您想为用 C 编写的扩展编写文档,请参阅 RDoc::Parser::C

如果您想使用 rake 生成文档,请参阅 RDoc::Task

如果您想以编程方式驱动 RDoc,请参阅 RDoc::RDoc

如果您想使用该库将文本块格式化为 HTML 或其他格式,请查看 RDoc::Markup

如果您想制作一个 RDoc 插件,例如生成器或指令处理程序,请参阅 RDoc::RDoc

如果您想编写自己的输出生成器,请参阅 RDoc::Generator

如果您想概述 RDoc 的工作原理,请参阅 CONTRIBUTING 中的错误部分

鸣谢

RDoc 目前由 Eric Hodel <[email protected]> 维护。

Dave Thomas <[email protected]> 是 RDoc 的原始作者。

  • rdoc/parse.rb 中的 Ruby 解析器主要基于 Nippon Rational Inc 的 Keiju ISHITSUKA 的杰出工作,他为 irb 和 rtags 包生成了 Ruby 解析器。

这个类被 RubyGems 引用来创建文档。所有实现都已移至上面的 RubyGemsHook

当此 RDoc 作为普通 gem 或捆绑 gem 安装时,此类不执行任何操作。

当此 RDoc 作为默认 gem 安装时,此类会为了兼容性而生成/删除文档。

当所有维护的 RubyGems 移除 ‘rubygems/rdoc.rb` 时,我们可以移除这个。

常量

ATTR_MODIFIERS

属性的 RDoc 修饰符

CLASS_MODIFIERS

类的 RDoc 修饰符

CONSTANT_MODIFIERS

常量的 RDoc 修饰符

DOT_DOC_FILENAME

包含当前目录中要处理的文件描述的 dotfile 的名称

GENERAL_MODIFIERS

通用的 RDoc 修饰符

KNOWN_CLASSES

Ruby 的内置类、模块和异常

METHOD_MODIFIERS

方法的 RDoc 修饰符

VERSION

您正在使用的 RDoc 版本

VISIBILITIES

方法可见性

公共类方法

home() 点击切换源代码

搜索并返回设置的目录。

  1. $HOME/.rdoc 目录,如果存在。

  2. XDG_DATA_HOME 环境变量指定的路径下的 rdoc 目录(如果已设置)。

  3. $HOME/.local/share/rdoc 目录。

除了主目录外,包含目录将自动创建。

# File rdoc.rb, line 132
def self.home
  rdoc_dir = begin
              File.expand_path('~/.rdoc')
            rescue ArgumentError
            end

  if File.directory?(rdoc_dir)
    rdoc_dir
  else
    require 'fileutils'
    begin
      # XDG
      xdg_data_home = ENV["XDG_DATA_HOME"] || File.join(File.expand_path("~"), '.local', 'share')
      unless File.exist?(xdg_data_home)
        FileUtils.mkdir_p xdg_data_home
      end
      File.join xdg_data_home, "rdoc"
    rescue Errno::EACCES
    end
  end
end
load_yaml() 点击切换源代码

加载最佳可用的 YAML 库。

# File rdoc.rb, line 105
def self.load_yaml
  begin
    gem 'psych'
  rescue NameError => e # --disable-gems
    raise unless e.name == :gem
  rescue Gem::LoadError
  end

  begin
    require 'psych'
  rescue ::LoadError
  ensure
    require 'yaml'
  end
end