Groovy脚本检查html坏链接

简介: 这些天在搞Gradle翻译,因为原译者在翻译的同时也把文件进行了整理,并且把翻译过的章节放到新的文件夹中,导致可能有些超链接未改正过来变成死链接。 本想在网上找个工具来检查的,百度了几个工具要么太大要么要安装,懒得弄那么多,于是用Groovy写了一个脚本。

这些天在搞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文件,其他文件不检查。然后把有错误的文件及其超链接在最后打印出来,正确的不打印。
目录
相关文章
|
5月前
|
前端开发
医院检查单子p图软件,在线制作仿真病历,js+css+html装逼神器
本示例展示如何用HTML/CSS创建医疗信息页面,内容仅供学习参考。页面模拟“阳光医院体检中心”场景,提供预约功能验证(如姓名、手机号、日期)。所有数据仅用于演示
|
JavaScript 前端开发
HTML 脚本2
&lt;noscript&gt;标签用于在浏览器禁用或不支持脚本时提供替代内容。该元素可包含所有常见的 HTML body 元素。当脚本不可用时,&lt;noscript&gt; 中的内容将被显示。例如:`&lt;noscript&gt;抱歉,你的浏览器不支持 JavaScript!&lt;/noscript&gt;`
|
JavaScript 前端开发
HTML 脚本1
JavaScript 通过 `&lt;script&gt;` 标签嵌入 HTML,增强页面的动态和交互性。它可以包含内联脚本或引用外部脚本文件,常用于图片操作、表单验证和内容动态更新。
|
安全 前端开发 JavaScript
如何检查和验证 HTML 中的 CSP 策略是否有效
本文介绍如何检查和验证 HTML 中的 Content Security Policy (CSP) 策略是否有效,包括使用浏览器开发者工具、在线验证工具和常见问题排查方法。
|
JavaScript 前端开发
HTML 脚本3
本教程介绍JavaScript的基本用法,包括在HTML中直接输出文本、响应事件和处理HTML样式。示例代码展示了如何使用`document.write()`输出文本,通过点击按钮触发事件,以及利用`document.getElementById().style`修改元素样式。
|
JavaScript 前端开发
HTML 链接5
空链接是指在HTML中不指向任何实际资源的链接。常见设置方法包括:`href=&quot;#&quot;`(导航到页面顶部)、`href=&quot;javascript:void(0)&quot;`(阻止默认行为,不刷新页面)、`href=&quot;&quot;`(刷新当前页面)、`href=&quot;about:blank&quot;`(打开空白页面)和`role=&quot;button&quot;`(链接表现为按钮,无默认行为)。选择合适的方法取决于具体应用场景。注意:链接应始终包含正斜杠以避免不必要的HTTP请求。
|
前端开发
HTML 链接2
HTML 使用 `&lt;a&gt;` 标签创建超链接,链接可以是文字或图像,点击后可跳转至新文档或当前文档的特定部分。链接地址通过 `href` 属性指定。默认情况下,未访问的链接为蓝色带下划线,已访问的为紫色,点击时为红色。样式可通过 CSS 自定义。
|
JavaScript 前端开发
HTML 链接1
HTML 链接(Anchor)是网页间跳转的核心元素,通过 `&lt;a&gt;` 标签创建。链接用于导航至其他网页、文档、图像等资源,实现网页互联。基本语法为 `&lt;a href=&quot;URL&quot;&gt;链接文本&lt;/a&gt;`。例如:`&lt;a href=&quot;https://example.com&quot;&gt;本文本&lt;/a&gt;` 是一个指向万维网上页面的链接。
HTML 链接4
`id`属性用于在HTML文档中创建书签。书签在页面中不可见,但可以通过链接直接跳转到指定位置。例如,在页面内或从其他页面链接到带有`id=&quot;tips&quot;`的元素:`&lt;a href=&quot;#tips&quot;&gt;访问有用的提示部分&lt;/a&gt;` 或 `&lt;a href=&quot;https://www.runoob.com/html/html-links.html#tips&quot;&gt;访问有用的提示部分&lt;/a&gt;`。
|
前端开发 安全 UED
HTML 链接怎么写才能好看又拥有最好的性能
要编写既美观又性能优良的 HTML 链接,请遵循以下最佳实践:使用语义化 `&lt;a&gt;` 标签并优化链接文本,使其描述性和简洁;使用 `rel=&quot;noopener noreferrer&quot;` 和 `target=&quot;_blank&quot;` 属性提高安全性和性能;通过 CSS 美化链接样式;合理控制链接数量,避免分散用户注意力;使用图标增强视觉效果;确保链接对所有用户都可访问;利用 CDN 提升加载速度;最后,测试页面性能以保证整体加载速度。

热门文章

最新文章