当前位置: 首页 > news >正文

如何给Hexo-butterfly主题博客在复制时添加版权声明

前言

文章被盗,被爬取,内容被cv,你是否很苦恼?
被复制时,自动给文章内容添加原文信息。🤣

1、确认需要版权声明的位置

通常情况下都是在拷贝博客详情内容时才给拷贝的内容添加版权信息,如果不管拷贝哪里的内容都给添加版权声明,影响用户体验。所以第一步确定博文详细内容在哪个标签中。这里我用的butterfly(蝴蝶)主题,他的文章主体内容在

标签中
文章主体内容标签

2、编写版权声明的js

js已写好,直接复制,替换自己的信息即可

script.function setClipboardText(event) {let clipboardData = event.clipboardData || window.clipboardData;if (!clipboardData) { return; }event.preventDefault();let text = window.getSelection().toString();if (text) {event.preventDefault();var copyright = '\n\n'+ '\n著作权归作者所有。'+ '\n商业转载请联系作者获得授权,非商业转载请注明出处。'+ '\n作者: 码农刚子'+ '\n邮箱: wxscc@foxmail.com'+ '\n原文地址: ' + window.location.href;clipboardData.setData('text/plain', text + copyright);}}var contents = document.getElementById("article-container");if(contents){contents.addEventListener('copy',function(e){setClipboardText(e);});}

<%= page.permalink %>: 当前页面链接
因为我们只是需要监听博客详情页的复制事件,所以我们可以直接将这段js放在博文详情页末尾。themes/butterfly[主题的名字]/layout/post.pug这个文件是生成博客详情的模板。

3、启动测试

执行hexo clean和hexo generate清除通过修改前生成的页面,然后再根据修改后模板生成新的页面。然后执行hexo server启动测试。效果如下图
版权声明截图

4、设置文章是否需要添加版权声明

如果我们是转载其他作者的文章,这种情况下肯定是不能添加自己的版权声明要去掉。

  1. 在文章头部添加一个copyright属性设置为false
    添加copyright属性
    默认没有此属性,也相当于true,所有文章都默认加版权声明,直有copyright为false时不加版权声明
  2. 在刚刚加js代码的地方再加一行
+ if page.copyright !== false script.function setClipboardText(event) {let clipboardData = event.clipboardData || window.clipboardData;if (!clipboardData) { return; }event.preventDefault();let text = window.getSelection().toString();if (text) {event.preventDefault();var copyright = '\n\n'+ '\n著作权归作者所有。'+ '\n商业转载请联系作者获得授权,非商业转载请注明出处。'+ '\n作者: 码农刚子'+ '\n邮箱: wxscc@foxmail.com'+ '\n原文地址: ' + window.location.href;clipboardData.setData('text/plain', text + copyright);}}var contents = document.getElementById("article-container");if(contents){contents.addEventListener('copy',function(e){setClipboardText(e);});}

版权声明:本文为作者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
作者: 码农刚子
邮箱: wxscc@foxmail.com
原文链接: https://www.codeobservatory.cn/archives/9dd55dbc.html

相关文章:

  • Hive SQL:一小时快速入门指南
  • 读取配置文件到Settings对象的完整实现
  • 【AS32系列MCU调试教程】驱动开发:AS32驱动库的集成与应用实例
  • 拓展:###单向循环链表###
  • comfyui插件和comfyui mac安装
  • 设备被看门狗重置问题
  • RHCE 练习四:编写脚本实现以下功能
  • web方向第一次考核内容
  • Linux免驱使用slcan,使用方法以Ubuntu为例
  • g++ a.cpp -o a ‘pkg-config --cflags --libs opencv4‘/usr/bin/ld: 找不到 没有那个文件或目录
  • [特殊字符] Next.js Turbo 模式不支持 @svgr/webpack 的原因与解决方案
  • Redis的list的底层原理
  • 后端通过nignx代理转发,提供接口供前端在防火墙外访问
  • Arduino入门教程​​​​​​​:4、打印字符到电脑
  • python中的模块化编程:日期模块、math算术模块、random模块
  • 国学IP行业实战洞察:聚焦创客匠人,解锁创始人IP与知识变现新路径
  • TDengine 如何从 2.x 迁移到 3.0
  • 用bilibili一个讲座视频,生成一本科普书籍
  • 苍穹外卖-day09
  • 湖北理元理律师事务所债务优化实务:平衡还款与生活的法律路径
  • 合川网站建设公司/宁波网站关键词优化代码
  • 专业网站建设办公/怎么根据视频链接找到网址
  • 网站开发是属于哪个税收分类/seo网络推广教程
  • 河南省工程建设信息网一体化平台/企业网站排名优化
  • 构站网/正规推广平台
  • 网站设计是什么意思/北京百度推广开户