1

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

{@docroot}/doc-files

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

4

2 回答 2

1

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

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

于 2010-12-19T08:14:46.127 回答
0

从@ChadRetz's blog中的getPackageDoc函数开始,我创建了一个实用程序类,其中包含一个执行您想要的功能的函数:给定 a ,它将其封闭文件(包含该标记的文件)中的相对 url 返回到 JavaDoc 根目录——这相当于.com.sun.javadoc.Tag{@docRoot}

类被调用ComSunJavaDocUtil,函数名为getRelativeUrlToDocRoot

一个示例 taglet 的toString()功能:

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

这个实用程序类是Codelet的一部分。安装说明在这里。如果这个实用程序类就是您要使用的全部,那么您的类路径中唯一需要的 jar 是codeletand xbnjava...当然还有com.sun.javadoc.

于 2014-04-29T21:00:25.017 回答