0

现在 Yardoc 将生成如下文档:doc/ModuleName.html、doc/ModuleName/ClassName.html 和 doc/ModuleName/ClassName/method_name.html 我想知道如何调整serialized_path(无需猴子修补所有内容)以执行以下操作:doc /ModuleName/index.html doc/ModuleName/ClassName/index.html 和 doc/ModuleName/ClassName/method_name/index.html

4

1 回答 1

0

您需要猴子补丁(据我所知,经过 2 天的搜索,我没有找到其他方法)所以...创建一个名为 yardoc_pretty-uris.rb 的文件,当您运行 yardoc do 时-e yardo_pretty-print.rb

yardoc_pretty-uris.rb 内容:

module YARD
  module Serializers
    class FileSystemSerializer
      def serialized_path(object)
        return object if object.is_a?(String)

        if object.is_a?(CodeObjects::ExtraFileObject)
          fspath = ["file.#{object.name}.#{@extension}"]
        else
          objname = "top-level-namespace"
          objname = object.name.to_s if object != YARD::Registry.root

          # Make this shit pretty URL's prease.....
          fspath = [objname, "index.#{@extension}"]

          if object.namespace && object.namespace.path != ""
            fspath.unshift(*object.namespace.path.split(CodeObjects::NSEP))
          end
        end

        fspath.map! do |part|
          part.downcase!
          part.gsub(/[^0-9a-zA-Z\-_\.]/, '')
        end

        File.join(fspath)
      end
    end
  end
end
于 2011-10-31T20:19:00.057 回答