Releases: willow-god/hexo-safego
Releases · willow-god/hexo-safego
Hexo-safego 2.1.0
hexo-safego 2.1.0
警告:本次更新不兼容原先格式,请在更新后按照说明更新配置项
更新内容
- 修复:使用
URL().hostname
方法替换include()方法
,使域名匹配更加完善,解决域名在参数位置导致不被替换的情况#4。 - 功能:添加自定义倒计时长度功能,可以改为不自动跳转#2。
- 界面:适配自定义跳转,如果为负数则直接显示提示手动跳转文字。
更新插件
npm update hexo-safego --save
示例配置项
# hexo-safego安全跳转插件
# see https://blog.liushen.fun/posts/1dfd1f41/
hexo_safego:
# 基本功能设置
general:
enable: true # 启用插件
enable_base64_encode: true # 使用 Base64 编码
enable_target_blank: true # 打开新窗口
# 安全设置
security:
url_param_name: 'u' # URL 参数名
html_file_name: 'go.html' # 重定向页面的文件名
ignore_attrs: # 忽略处理的 HTML 属性
- 'data-fancybox'
# 容器与页面设置
scope:
apply_containers: # 应用的容器选择器
- '#article-container'
apply_pages: # 应用的页面路径
- "/posts/"
- "/devices/"
exclude_pages: # 排除的页面路径
# 域名白名单
whitelist:
domain_whitelist: # 允许的白名单域名
- "qyliu.top"
- "liushen.fun"
# 页面外观设置
appearance:
avatar: /info/avatar.ico # 头像路径
title: "清羽飞扬" # 页面标题
subtitle: "安全中心" # 页面副标题
darkmode: false # 是否启用深色模式
countdowntime: 4 # 倒计时秒数
# 调试设置
debug:
enable: true # 启用调试模式
更加详细的教程请看使用文档
Hexo-safego 2.0.2
hexo-safego 2.0.2
更新内容
- 修复:使用
addEventListener
方法替换window.onload
,防止由于额外的如PWA
脚本导致代码失效 - 优化:使用压缩版本的
html
文件代码,未压缩版本单独提供到项目内。 - 界面:将配色改为黑白灰,更加简约符合习惯
(本次升级为兼容式升级,升级后不变动配置项也可以继续使用,不影响原始功能)
更新插件
npm update hexo-safego --save
更加详细的教程请看详细使用说明
Hexo-safego 2.0.1
hexo-safego 2.0.1
更新内容
- 配置项:添加
'exclude_pages'
,可以排除某些页面,用于和apply配合使用(@xyhcode ) - 文档:完善文档中新配置项的内容(@willow-god )
- 置空判断:优化部分配置项置空时的处理,防止由于空值出现错误(@willow-god )
(本次升级为兼容式升级,升级后不变动配置项也可以继续使用,不影响原始功能)
更新插件
npm update hexo-safego --save
主要特性
- 外部链接跳转:将外部链接替换为自定义的跳转页面,可以自定义文件名称,增加安全性。
- 灵活配置:支持多个容器,使用
css
选择器进行选择、支持白名单域名和生效页面路径的配置。 - Base64 编码:可选将外链链接编码为
Base64
加密,在跳转时再使用js转为正常网站地址,增强安全性能。 - 调试模式:调试模式输出详细信息,便于开发和调试。
- 自定义页面:支持设置标题、副标题、头像、暗黑模式,如果有前端基础,还可以自己定义跳转页面进行美化。
- 精简配置:去除很多没必要的配置项,简单配置即可直接使用,操作更加小白化。
注:由于该插件是在构建时替换,但是评论区是前端js生成,所以无法在配置项中添加评论区相关的跳转!!!
示例配置项
# hexo-safego安全跳转插件
# see https://blog.qyliu.top/posts/1dfd1f41/
hexo_safego:
enable: true # 是否启用 hexo-safego 插件
enable_base64_encode: true # 是否启用 Base64 编码链接
enable_target_blank: true # 是否在跳转链接中添加 target="_blank"
url_param_name: 'u' # URL 参数名,用于生成跳转链接
html_file_name: 'go.html' # 跳转页面文件名
ignore_attrs: # 需要忽略的链接属性列表
- 'data-fancybox'
apply_containers: # 容器 ID 列表,如果为空则匹配整个 body
- '#article-container'
domain_whitelist: # 域名白名单列表,包含白名单中的域名的链接将被忽略
- 'example.com'
exclude_pages: # 排除路径列表,会排除这些页面,可以配合生效页面路径配合使用
- '/safego_exclude_page/'
apply_pages: # 生效页面路径列表,只有在这些页面上才会对链接进行处理
- '/posts/'
avatar: https://fastly.jsdelivr.net/gh/willow-god/hexo-safego@latest/lib/avatar.png # 头像图片链接
title: "清羽飞扬" # 标题
subtitle: "安全中心" # 副标题
darkmode: false # 是否启用夜间模式
debug: false # 是否启用调试模式,开启后会输出详细的调试信息
更加详细的教程请看详细使用说明
hexo-safego 正式版
hexo-safego 2.0.0
主要特性
- 外部链接跳转:将外部链接替换为自定义的跳转页面,可以自定义文件名称,增加安全性。
- 灵活配置:支持多个容器,使用
css
选择器进行选择、支持白名单域名和生效页面路径的配置。 - Base64 编码:可选将外链链接编码为
Base64
加密,在跳转时再使用js转为正常网站地址,增强安全性能。 - 调试模式:调试模式输出详细信息,便于开发和调试。
- 自定义页面:支持设置标题、副标题、头像、暗黑模式,如果有前端基础,还可以自己定义跳转页面进行美化。
- 精简配置:去除很多没必要的配置项,简单配置即可直接使用,操作更加小白化。
安装插件
npm install hexo-safego --save
添加配置项
# hexo-safego安全跳转插件
# see https://blog.qyliu.top/posts/1dfd1f41/
hexo_safego:
enable: true # 是否启用 hexo-safego 插件
enable_base64_encode: true # 是否启用 Base64 编码链接
enable_target_blank: true # 是否在跳转链接中添加 target="_blank"
url_param_name: 'u' # URL 参数名,用于生成跳转链接
html_file_name: 'go.html' # 跳转页面文件名
ignore_attrs: # 需要忽略的链接属性列表
- 'data-fancybox'
apply_containers: # 容器 ID 列表,如果为空则匹配整个 body
- '#article-container'
domain_whitelist: # 域名白名单列表,包含白名单中的域名的链接将被忽略
- 'qyliu.top'
apply_pages: # 生效页面路径列表,只有在这些页面上才会对链接进行处理
- '/posts/'
avatar: /info/avatar.ico # 头像图片链接
title: "清羽飞扬" # 标题
subtitle: "安全中心" # 副标题
darkmode: false # 是否启用夜间模式
debug: false # 是否启用调试模式,开启后会输出详细的调试信息
更加详细的教程请看详细使用说明
hexo-safego 1.0.2
hexo-safego 1.0.1
hexo-safego 版本 1.0.1 发布说明
更新内容
- 去除插件对于本人本地环境依赖,增强兼容性
- 重构跳转页面,可自定义
注意
该插件暂时并不完善,仍在实验阶段,预计 6 月 20 号上线,敬请期待。如果无基础建议选择同类替代产品,如:安全跳转页面重制版。如果感兴趣,欢迎 PR!
hexo-safego 1.0.0
hexo-safego 发布说明
概述
hexo-safego
是一个改进版的 Hexo 插件,用于处理外部链接以增强博客的安全性。该插件基于 hexo-external-link 进行二次开发,但其实现方式不同:原版插件通过注入 JavaScript 来处理外部链接,而 hexo-safego
则在生成静态页面时直接替换外部链接。
注意: 该插件暂时并不完善,仍在实验阶段,如果无基础建议选择同类替代产品,如:安全跳转页面重制版。如果感兴趣,欢迎 PR!
特性
- 在静态页面中替换外部链接
- 可选的 URL Base64 编码
- 可自定义的链接属性和 rel 值
- 域名白名单
- 基于容器的链接处理
- 调试模式
安装
-
使用 npm 安装
hexo-safego
和cheerio
:npm install hexo-safego cheerio
-
在 Hexo 的
_config.yml
中添加以下配置:hexo_safego: enable: true enable_base64_encode: false url_param_name: 'u' html_file_name: 'go.html' target_blank: true domain: '' safety_chain: false link_rel: 'external nofollow noopener noreferrer' ignore_attrs: - 'data-fancybox' - 'ignore-external-link' container_ids: - 'article-container' # 容器 ID 列表,如果为空则匹配 body domain_whitelist: - 'qyliu.top' # 域名白名单列表 apply_pages: - '/posts/' # 生效页面路径列表 debug: false # 调试模式
配置参数说明
- enable: 启用插件。
- enable_base64_encode: 启用 URL 的 Base64 编码。
- url_param_name: 跳转链接中使用的 URL 参数名。
- html_file_name: 跳转页面的 HTML 文件名。
- target_blank: 在新标签页中打开链接。
- domain: 跳转页面的域名。
- safety_chain: 添加安全链到 URL。
- link_rel: 链接的 rel 属性。
- ignore_attrs: 处理链接时忽略的属性。
- container_ids: 匹配的容器 ID 列表,如果为空则使用 body 标签。
- domain_whitelist: 域名白名单列表。
- apply_pages: 插件生效的页面路径列表。
- debug: 启用调试模式用于排查问题。
使用方法
安装并配置完成后,hexo-safego
将在生成 Hexo 站点时自动处理外部链接。根据指定配置,外部链接将被替换,确保所有外部链接都通过一个安全的跳转页面,从而增强博客的安全性。
贡献
欢迎对 hexo-safego
的开发做出贡献,PR(Pull Request)欢迎!