如何在com.sun.javadoc.Taglet中获得{@docroot}的价值?

时间:2010-11-02 15:35:20

标签: java javadoc taglet

我正在编写一个自定义标记,用于在javadoc html文件中包含mathML文件。我想将所有* .mml文件存储在同一个文件夹中,可能在

{@docroot}/doc-files

文件夹。我的问题是:如何知道Taglet对象中的@docRoot字符串的值(更具体地说,在toString(com.sun.javadoc.Tag tag)方法中? 非常感谢!

2 个答案:

答案 0 :(得分:1)

我还需要在我的javadoc中显示MathML。我写了一篇关于我如何在这里解决它的博客文章:http://chadretz.wordpress.com/2010/12/19/mathml-inside-javadoc-using-mathjax-and-a-custom-taglet/

更具体地说,对于你的问题,如果你查看我在那里发布的Taglet源代码(默认情况下已折叠),你可以看到我在哪里获得Tag.holder()的顶级ClassDoc来获取目录深度I我在这,我可以走了。如果您需要相对HTML根,这会有所帮助。如果您在Taglet运行时需要知道MML的位置,我建议您将它们放在类路径上并作为资源访问它们。

答案 1 :(得分:0)

@ChadRetz's bloggetPackageDoc函数开始,我创建了一个实用程序类,其中包含一个可以执行所需操作的函数:给定com.sun.javadoc.Tag,它返回相对值url从其封闭文件(包含该标记的文件)到JavaDoc根目录 - 这相当于{@docRoot}

该类名为ComSunJavaDocUtil,函数名称为getRelativeUrlToDocRoot

示例标记的toString()函数:

public String toString(Tag tag) {
   return  "Relative url to DOC ROOT for this tag's enclosing file is \"" + 
      ComSunJavaDocUtil.getRelativeUrlToDocRoot(tag) + "\"";
}

此实用程序类是Codelet的一部分。安装说明为here。如果您要使用此实用程序类,那么您在类路径中所需的唯一jar包是codeletxbnjava ...当然还有com.sun.javadoc