更改yardocserialized_pa​​th

发布于 2024-12-12 21:07:50 字数 269 浏览 0 评论 0原文

现在 Yardoc 将生成如下文档: doc/ModuleName.html、doc/ModuleName/ClassName.html 和 doc/ModuleName/ClassName/method_name.html 我想知道如何调整 serialized_pa​​th (无需猴子修补)一切)执行类似以下操作: doc/ModuleName/index.html doc/ModuleName/ClassName/index.html 和doc/模块名/类名/方法名/index.html

Right now Yardoc will generate docs like: doc/ModuleName.html, doc/ModuleName/ClassName.html and doc/ModuleName/ClassName/method_name.html I was wondering how I can adjust serialized_path (without monkey patching everything) to do something like: doc/ModuleName/index.html doc/ModuleName/ClassName/index.html and doc/ModuleName/ClassName/method_name/index.html

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暗地喜欢 2024-12-19 21:07:54

你需要猴子补丁(据我所知,经过两天的搜索,我没有找到其他方法)所以......创建一个名为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

You'll need to monkey patch (from what I've noticed, after 2 days of searching I found no other way) So...Create a file named yardoc_pretty-uris.rb and when you run yardoc do -e yardo_pretty-print.rb.

yardoc_pretty-uris.rb contents:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文