这些天在搞Gradle翻译,因为原译者在翻译的同时也把文件进行了整理,并且把翻译过的章节放到新的文件夹中,导致可能有些超链接未改正过来变成死链接。
本想在网上找个工具来检查的,百度了几个工具要么太大要么要安装,懒得弄那么多,于是用Groovy写了一个脚本。此脚本仅检查本地超链接,代码如下:
if (args.size() != 1) { printf("Please specify a folder or HTML file path...") return } def file = new File(args[0]) if(file.isFile()) { if(!args[0].toLowerCase().endsWith(".html")) { return } checkHtml(file) } else if (file.isDirectory()) { def errorLinks = new HashMap<String,List<String>>() file.eachFileMatch( ~/.*\.html/,{ checkHtml(it,errorLinks) }) errorLinks.each {name,links -> println "file: " + name links.each { println "href:\t" + it } } } void checkHtml(File file,HashMap<String,List<String>> errorlinks) { def matches = file.text.findAll('href="([^#(http)].+?)("|#)') def links = new ArrayList<String>() matches.each { def path = it - 'href="' - '"' - '#' if(!new File(file.getParentFile(),path).exists()) { links.add(path) } } if(!links.isEmpty()) { errorlinks.put(file.path,links) } }运行时传入一个地址。如果是HTML文件,则检查该文件。如果是目录,则检查里面的HTML文件,其他文件不检查。然后把有错误的文件及其超链接在最后打印出来,正确的不打印。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。