Как получить значение {@docroot} в теге com.sun.javadoc.Taglet?

Я пишу пользовательский тег для включения файла mathML в HTML-файл Javadoc. Я хотел бы хранить все мои *.mml файлы в одной папке, возможно, в

{@docroot}/doc-files

папка. Мой вопрос: как я могу узнать значение строки @docRoot в объекте Taglet (более конкретно, в пределах toString(com.sun.javadoc.Tag tag) метод? Большое спасибо!

2 ответа

Мне также нужно было отобразить MathML в моем Javadoc. Я написал сообщение в блоге о том, как я решил это здесь: http://chadretz.wordpress.com/2010/12/19/mathml-inside-javadoc-using-mathjax-and-a-custom-taglet/

Если говорить более конкретно о вашей проблеме, то, если вы посмотрите на исходный код Taglet, который я разместил там (по умолчанию свернут), вы можете увидеть, где я получаю ClassDoc верхнего уровня Tag.holder(), чтобы получить глубину каталога, на которой я нахожусь, поэтому Я могу пройти. Это помогает, если вам нужен относительный корень HTML. Если вам нужно знать местоположение ваших MML во время работы Taglet, я предлагаю вам поместить их в путь к классам и получить к ним доступ как к ресурсам.

Начиная с getPackageDoc Функция из блога @ChadRetz, я создал вспомогательный класс, который содержит функцию, которая делает то, что вы хотите: 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. Инструкции по установке здесь. Если этот служебный класс - это все, что вы собираетесь использовать, то единственные jar-файлы, которые вам нужны в вашем classpath: codelet а также xbnjava... и, конечно же, com.sun.javadoc,

Другие вопросы по тегам