词典内原始链接为词头编码,无法协同其他词典查词【用 javascript 解决】

在使用词典的过程中我发现了下面的问题:

词典内的跳转链接的内容,不是这个词的本身,而是词典内部对词头的数字编码。
即下图中的:工具19641

虽然这个链接不影响单独这本词典内的查词,但是查询结果如下图。

可以看到下图中,因为当前词典单独的词头数字编码,右边的查得词典一栏只有一本。

论坛里面似乎没有帖子提到过这个问题,亦或许是我搜索得不到位。

最初我是想直接批量修改mdx源文件来把链接内容替换成词条的,结果在询问ChatGPT时偶然得知了javascript的dom操作这个东西。

也就是通过JavaScript可以在html渲染过程中,临时性地直接批量编辑每个词条的html内容。

这样一来就不必冒着丢失原数据的风险修改mdx源文件了,而且比起直接编辑源文件,写javascript更轻松些。

借助gpt有了如下的js代码:

function updateLinkHref() {
        // .querySelectorAll(' ')内一定要写具体的selector,
        // 避免影响 Goldendict的html页面内其他的词典
    document.querySelectorAll('.ruigo-items a').forEach(link => {   
        const text = link.textContent.trim();                       
        
        /* 在replace()里面的 '/ /' 中间写正则表达式,匹配去掉不需要的部分  */
        let cleanedText = text.replace(/(.*?)/g, '').trim();  // 去掉括号包裹的内容
        cleanedText = cleanedText.replace(/・.*/g, '');         // 有・并列的,只保留第一个

        /* 处理好的内容写入跳转链接里面  */
        link.href = cleanedText;
    });
}
/* 下面这一段是让整个html页面加载完再执行js操作内容,应该是不可缺少的 */
document.addEventListener('DOMContentLoaded', () => {
    updateLinkHref()
});

经过javascript操作过的链接变成了理想中的样子:
金槌・金鎚金槌

3 Likes