我想在生成的Javadoc HTML的<head>
中包含一个元素:
<link rel="shortcut icon" href="my-project-icon.ico" />
请注意,我正在使用Ant任务来生成Javadoc。
我尝试使用Ant任务的<header>
元素,但放在那里的任何标记最终都在<h1>
标记内,该标记无效,因此被浏览器忽略。
答案 0 :(得分:2)
我肯定会将输出文件修改为一个简单的强力解决方案。但一种复杂的方法是拥有一个自定义doclet。此doclet将是标准doclet(Where can you download the source for the standard JavaDoc doclet for current releases (1.5 or 1.6))的副本。
在HtmlDocletWriter.java
中,有许多行head.addContent
。您可以添加一个这样的行,可能基于HtmlTree.LINK
。
答案 1 :(得分:2)
我们使用以下bash / sed脚本采用“强力”方法。
(请注意,javadoc在创建的目录中创建一些名为“* .html”的丑陋文件, 当sed尝试处理它们时会导致错误消息。我们还没有想出如何避免这种情况,但它似乎对我们的目的无害! - )
当然,xslt脚本会更专业,...
#!/bin/sh
# patch favicon into header of javadoc generated api doc html
#
# assume started with P=`pwd` , then the args must be
# 1 directory to process / full path relative to $P
# 2 favicon filename to insert / full path relative to $P
function patchIt () {
for f in $1/*.html ; do
tmpfile=`mktemp -p . `
sed -e " s%<HEAD>%<HEAD><link rel=\"icon\" href=\"$2\" type=\"image/png\"/>%" \
$f > $tmpfile ; mv $tmpfile $f ;
done ;
for d in $1/* ; do
if [ -d $d ]; then echo "descending to "$d ; patchIt $d ../$2 ; fi ;
done
}
patchIt $1 $2
#eof
答案 2 :(得分:0)
马库斯的解决方案是一个良好的开端。谢谢你提供它!
然而,它有一些问题:
*.html
。<head>
而不是<HEAD>
。这是一个纠正这些问题的版本。可以在expanded version存储库中找到html-tools。如果您发现问题或想提出改进建议,请在此处发表评论或使用html-tools issue tracker。
#!/bin/sh
# Add favicon to header of HTML files.
# One use case is for javadoc-generated API documentation.
#
# Run like this:
# add-favicon <directory> <favicon.png>
# The arguments should be paths relative to the current working directory.
# Once this has been run, running it another time has no effect.
patchIt () {
for f in $1/*.html ; do
if [ -f "$f" ]; then # if no .html files exist, f is literal "*.html"
tmpfile=`mktemp patch_favicon_XXXXX`
# This creates tmpfile, with the same permissions as $f.
# The next command will overwrite it but preserve the permissions.
# Hat tip to http://superuser.com/questions/170226/standard-way-to-duplicate-a-files-permissions for this trick.
\cp -p $f $tmpfile
sed -e " s%<head>\$%<head><link rel=\"icon\" href=\"$2\" type=\"image/png\"/>%" $f > $tmpfile
mv -f $tmpfile $f
fi;
done ;
for d in $1/* ; do
if [ -d $d ]; then echo "descending to "$d ; patchIt $d ../$2 ; fi ;
done
}
patchIt $1 $2
#eof