乱码三千 – 分享实用IT技术

乱码三千 – 码出一个新世界


  • 首页

  • 归档

  • 搜索

Hexo博客自定义404页面

发表于 2022-07-21

前言

一个成熟的网站当然要有他独特的404页面,使用GitHub Pages部署的博客虽然有GitHub的默认404页面,但显然不够美观,也与我们的网站整体风格不搭。

要实现自定义404其实很简单,只要在网站的根目录放一个404.html文件即可。而对于我们使用的Hexo,则有更合适的处理方法。

操作步骤

第一步 创建404页面

进入hexo站点的根目录,打开终端,输入:

1
hexo n page "404"

将会在source目录下生成一个404文件夹,其中有一个index.md文件,这个文件其实就相当于是404.html了。

第二步 打开index.md,修改头部信息:
1
2
3
4
layout: false
comments: false
title: 404
permalink: /404

注意不要忘了修改permalink,不然不会在根目录下生成404.html。

第三步 编写404页面内容

由于markdown是支持插入html内容的,因此只需要在这个md文件里写入html代码即可。要注意的是html代码之间千万不能有空行,不然会标签识别错误!

类似这样

那么接下来的就是考验你前端编码的能力和审美了。可惜本人不才,让我凭空写一个美观的网页几乎不可能,那只能靠拿来了!

这里推荐一个404模板网站,有非常多美观的404页面,总能找到属于你的菜。

选模板

找一个你喜欢的模板,点击下载源码,里面一般包含了html+js+css。html刚才说了直接贴markdown文档里即可,而js和css可以放到刚才生成的404目录下。

同时别忘了修改html中的css和js引用地址:

1
2
3
4
5
6
7
<!-- 网站icon -->
<link rel="icon" href="/img/favicon.svg">
<!-- css文件 -->
<link rel="stylesheet" type="text/css" href="/404/404.css">
<!-- js文件 -->

<script type="text/javascript" src="/404/404.js"></script>

这样就基本完成了,hexo s看看效果:

404页面

有兴趣的话可以再微调下页面内容即可。

附加思考

  1. 可以直接在_post目录中添加404.md吗?

    答: 可以 不过_post目录下的文本会当做文章收入进主页中, 如果不想在主页和归档列表中看到404页面, 建议还是使用hexo n page指令, 将其单独放置在一个目录中

  2. 404页面和网站整体融合性

    我们发现 上述的方法生成的404页面和网站融合度很高, 可以保留或者移除主题布局, 如果你想单独制作一个和原网站风格不相关的404页面,那么直接自定义一个404.html文件放置到网站根目录即可

本文转载自:https://blog.luzy.top/posts/456645515/

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

QQ空间相册批量下载原图方法

发表于 2022-07-20

▍1 QQ空间导出助手(浏览器扩展)

这一回的话就要首推这款浏览器扩展了:https://github.com/ShunCai/QZoneExport

如果你访问Github困难,也可以访问项目的Gitee镜像地址:https://gitee.com/mirrors_ShunCai/QZoneExport

建议了解《2022 Github加速访问教程》

作者在2021年11月28日对扩展进行了更新,1.1.4版修复了之前介绍时提到的诸多问题

打开项目地址后,你有以下多种方式可以进行安装这款浏览器扩展

img

如果你不会富强上网,建议就是自己去下载一个Edge或者360浏览器,这样直接就能从扩展商店在线进行安装

img

扩展安装好之后,右键扩展图标,点击扩展选项

img

在「公共」选项卡下设置下载方式为「浏览器」,或者你也可以根据说明设置为 Aria2、迅雷,设置好之后记得点击保存\

img

然后打开浏览器设置,关闭下载设置中的「每次下载都询问我该做些什么」这个选项(不关的话之后下载会一直有弹窗)

img

然后就没什么好说的了,扩展默认下载原图(带EXIF信息)\,这款扩展不仅支持备份相册,同事还支持导出说说、日志、私密日记、视频、留言板、好友、收藏夹、分享、访客内容,可谓非常全能!

img

如果你勾选了下载说说、日志等东西,最后还可以点击一个打包下载,扩展会生成一个网页文件供你方便查看

img

▍2 QQ空间相册下载神器(油猴脚本)

第二款相对方便的工具就是这个油猴脚本了:https://greasyfork.org/zh-CN/scripts/399958

img

油猴脚本的安装方法请复习:这篇文章的第2节

脚本装好之后,在使用之前,务必有俩个地方需要设置

打开浏览器设置,关闭下载设置中的「每次下载都询问我该做些什么」这个选项(不关的话之后下载会一直有弹窗)

并且千万记得创建一个文件夹,并将下载位置改一下(否则可能会下载到遍桌面都是)

img

这时再打开你的QQ空间,你会发现在相册里面多出了一个「下载当页」的按钮

img

点击一下你就会发现其将会在浏览器新窗口疯狂开图片,并调用浏览器进行下载

img

当然,放心,图片下载完之后其会自动关闭新窗口,不必你挨着挨着去关闭

阿虚实测下载到的也都是带EXIF信息的原图\

img

▍3 qq-zone(WIN)

Github地址:https://github.com/qinjintian/qq-zone

如果你访问Github困难,建议了解《2022 Github加速访问教程》

打开网页之后,点击Code,下载整个项目(如果你有学习阿虚上方的Github加速教程,才会有像下图一样的加速下载方式)

img

总之下载成功之后,运行作者已经帮我们编译好的qq-zone.exe,就会弹出下面这样一个窗口

img

根据提示依次通过键盘输入,关于下载并行数,100M的宽带作者建议设置为8-15/200M的宽带建议设置为16-30,这个根据自身的网络来进行设置

然后就是输入你需要下载的相册名了(一定要完全和空间里的对应上)

img

如果是下载自己空间里的相册,会在软件的目录里面生成一个qrcode.png二维码,点开它,用手机QQ扫码进行登录

img

然后很快就能下载完了

img

这款软件下载的.jpg格式的图片,下载后会被保存为.jfif格式,但图片的EXIF信息也是还在的\

▍4 QZAlbumTool (WIN)

Github地址:https://github.com/kahotv/QZAlbumTool

如果你访问Github困难,建议了解《2022 Github加速访问教程》

这款软件最后的更新时间在2019.11.03,但阿虚实测2022年依旧能用的,而且使用也属于是最简单的了

下载软件解压之后,双击目录中的QZAlbumTool.exe运行软件,然后扫码进行的登录

img

耐心等待其读取完相册之后,切换到相册选项卡,像下图一样选中你需要下载的相册,再点击导出选中即可

img

不过这款软件的下载效率有点低了(可能是代码没优化很好),总之就是下载的有点慢!

虽然需要耐心等待,不过下载到图片的都是带EXIF信息的原图\,这个是可以放心的

img

▍5 QQ空间(安卓/iOS)

官方的QQ空间APP其实也能批量下载带EXIF信息的照片原图\,不过被限制了一次性只能下载50张

img

APP可在各大应用商店或者官网直接下载:

http://z.qzone.com/download.htmlz.qzone.com/download.html

▍6 如果你会Python

如果你会用Python,也可以自己搭建相关运行环境,自己跑代码来使用以下项目:

  1. qzone-photo-downloader(需要搭配Chrome浏览器):https://github.com/dslwind/qzone-photo-downloader
  2. QQZone_AutoDownload_Album(需要搭配Firefox浏览器):https://gitee.com/songxf1024/QQZone_AutoDownload_Album
  3. QzoneExporter(需从浏览器获取cookies、tk值):https://github.com/wwwpf/QzoneExporter

但对于多数人,前文介绍的4款工具既方便又好用,这些Python项目就留给各位程序员去折腾吧

避免有些粉丝的确下载不来Github上的软件,本文提到的软件类工具阿虚都已经帮大家打包好了

点击这里即可下载

照片到是可以通过以上方法下载回来了,不过如果你还没有想好今后怎么备份相册的话,阿虚前不久才写了一篇7000字的长文,建议各位是可以去看一看的

为了寻找当下最好的照片备份方式,我写了7000字的长文…mp.weixin.qq.com/s/qiRu-tC_5kysQISgrv5xYwimg

本文转载自:https://zhuanlan.zhihu.com/p/340238253

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

关于移动设备唯一标识的获取

发表于 2022-07-13

起因

我们在做移动端开发时, 不可避免地会遇到需要获取设备唯一标识的问题

如果仅仅只需要给设备去重, 通常情况下我们可以考虑直接使用推送SDK生成的设备Token, 比如极光推送, 或者腾讯TPNS, App重装后这个token可能会变, 但重复的概率极低 只是并不具备唯一性

想要唯一性 以安卓设备为例, 其实有很多设备码可用, 比如IMEI, MAC地址等等, 但是为什么我们在实际应用中无法将它们用作唯一标识呢

我们挨个来分析一下

IMEI

Android中也叫DEVICE_ID, 是移动电话的唯一设备码, 相当于手机的身份证, 具备唯一性

但是:

  • 有通话功能的设备才有该码, 不是所有移动设备都具备拨号功能
  • 双卡双待会有两个IMEI值
  • 模拟器可以修改IMEI
  • Android10以上无法获取IMEI

网卡 Mac地址

其中包含硬件MAC地址和WLAN MAC地址(BSSID), 硬件MAC地址和硬件绑定, 具备唯一性 , 但是WLAN MAC地址通常是随机的 主要是为了避免隐私泄露, 每个热点在连接时会使用随机的地址

可即便是硬件Mac也存在不足之处:

  • 有网卡的设备才有Mac地址, 不是所有设备都具备联网功能
  • Mac地址可以通过软件欺骗性修改

蓝牙Mac地址

和WLAN Mac一样具备唯一性

但是:

  • 没有蓝牙的设备获取不到该值
  • 蓝牙需要保持开启状态才有值

ANDROID_ID

官方推荐使用的设备码, 具备唯一性

但是:

  • 设备恢复出厂设置 或者ROOT后 该值会改变
  • 国内定制系统的设备可能返回null
  • Android8以下无法获取Android_ID

PsuedoID

该方式是通过拼接硬件信息获取到的,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
//获得独一无二的Psuedo ID
public static String getUniquePsuedoID() {
String serial = null;

String m_szDevIDShort = "35" +
Build.BOARD.length()%10+ Build.BRAND.length()%10 +

Build.CPU_ABI.length()%10 + Build.DEVICE.length()%10 +

Build.DISPLAY.length()%10 + Build.HOST.length()%10 +

Build.ID.length()%10 + Build.MANUFACTURER.length()%10 +

Build.MODEL.length()%10 + Build.PRODUCT.length()%10 +

Build.TAGS.length()%10 + Build.TYPE.length()%10 +

Build.USER.length()%10 ; //13 位

try {
serial = android.os.Build.class.getField("SERIAL").get(null).toString();
//API>=9 使用serial号
return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();
} catch (Exception exception) {
//serial需要一个初始化
serial = "serial"; // 随便一个初始化
}
//使用硬件信息拼凑出来的15位号码
return new UUID(m_szDevIDShort.hashCode(), serial.hashCode()).toString();

最终会得到类似于这样的一串ID:00000000-088ee-388eb-ffff-ffffe93ee2

这种方案只能做到小范围内唯一

因为:

  • 系统升级后 该值可能会变化
  • 同一批次出厂的设备可能出现值重复

总体来说 该方案可行性相对较高一些 重复的概率极低, 而且不需要获取用户权限

但是依然不够唯一

总结

以上所有的方案似乎都只是理论唯一, 真要用到实际产品中还是差了点, 如果非要准确一些可以考虑以下方案:

第一种
  • Android 8.0以下 使用 PsuedoID + DeviceId 来判断设备唯一性
  • Android 8.0及以上 使用PsuedoID + ANDROID_ID来判断设备唯一性
第二种

如果忽略大部分不能联网的设备, 可以使用Mac地址作为唯一标识, 由于Android6.0以上的版本无法获取Mac地址, 我们可以考虑从底层文件获取, Mac地址文件路径为:

1
/sys/class/net/wlan0/address

具体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fun getMacAddr(): String {
return try {
loadFileAsString("/sys/class/net/wlan0/address")
.toUpperCase().substring(0, 17)
} catch (e: IOException) {
e.printStackTrace()
""
}
}

@Throws(IOException::class)
private fun loadFileAsString(filePath: String): String {
val fileData = StringBuffer(1000)
val reader = BufferedReader(FileReader(filePath))
val buf = CharArray(1024)
var numRead = 0
while (reader.read(buf).also { numRead = it } != -1) {
val readData = String(buf, 0, numRead)
fileData.append(readData)
}
reader.close()
return fileData.toString()
}
第三种

使用第三方设备唯一标识提供商, 比如数字联盟, 对于Android和IOS设备均适用

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android TV 电视盒子开发之远程网络调试

发表于 2022-07-12

硬件环境准备

一般电视盒子是不具备 USB 线调试功能 , 多数只能使用adb远程调试 , 国内的电视盒子提供一个 USB 的接口可以插 U 盘 ;

USB线调试 : 有些厂商提供了通过该接口进行 adb 调试的功能 , 如 小米 , 但是必须使用一根公对公的 USB 线 ;
( 国内的电视盒子一般要使用 USB 公对公接口 , 两头都是 USB 接口 , 有些电视没有该功能 )

远程调试 : 开发者电脑 与 Android TV , 必须在同一个局域网中 , 才能进行远程调试 ; ( 远程调试的速度一般要低于 )

开启开发者模式

先到 关于本机 界面 , 启用开发者模式 , 选择 关于本机 / 产品信息 / 软件版本 点击多次 , 即可启用开发者模式 ;

在这里插入图片描述

在这里插入图片描述

在 账户安全 界面的 ADB模式 选择 开启 即可进行远程调试 ;

在这里插入图片描述

查询 Android 电视局域网 IP 地址

进入设置界面 , 选择网络连接界面进入 ;

在这里插入图片描述

进入 网络设置 后 , 选择当前连接的 WIFI选项 , 进入 ;

在这里插入图片描述

此时就可以看到Android TV 的局域网 IP 地址 ;

在这里插入图片描述

开启远程连接

在上面得到安卓电视的 IP 地址是 192.168.1.104 , 先ping 一下 , 查看是否能ping 通 ;

在这里插入图片描述

如果 ping 不通 , 说明 电脑 与 电视 , 网络连接不通 , 无法进行 adb 调试 , 此时需要排查问题 , 电脑是否网络通常 , 电视网络是否通常 , 电脑和电视是否在同一个局域网中 ;

如果能ping 通 , 则使用 adb connect 命令 , 连接该远程设备 ;

1
adb connect 192.168.1.104:5555   #5555可以省略

执行上述命令 , 即可通过网络连接 adb 调试 ;

使用adb devices命令 , 可以查看当前使用 adb 调试的设备 ;

在这里插入图片描述

在Android Studio 中也可以看到该电视盒子 , 并且打印电视盒子的相关日志 , 向电视盒子中部署程序 , 跟使用 USB 调试手机一样 ;

在这里插入图片描述

以上远程调试方法不仅针对AndroidTV, 对于Android手机也是一样的流程

附加

  1. 如果出现连接不上的情况 可能是设备tcpip模式未开启, 可以执行以下指令开启:

    1
    adb -s 设备名 tcpip 5555
  2. 如果依然无法连接, 那么有可能是安卓设备没有开启adb远程调试或者端口未开放

    我们可以通过shell查看安卓设备5555端口是否开启, 指令如下:

    1
    adb -s 设备名 shell netstat -ntlp | grep 55

    img

  3. 如果端口没有开启, 则运行以下指令开启:

    1
    adb -s 设备名 shell setprop service.adb.tcp.port 5555
  4. 另外 如果要通过shell查看设备ip, 可以运行以下指令:

    1
    adb -s 设备名 shell ifconfig
或者

1
adb -s 设备名 shell netcfg
  1. 最后 断开设备连接

    1
    adb disconnect 192.168.1.104:5555

本文转载自: https://blog.csdn.net/shulianghan/article/details/118241238

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1
2


Mac快速开启http本地服务共享文件

发表于 2022-07-11

前言

有时候我们可能需要用手机访问电脑上的文件, 或者用手机测试电脑上编写的程序

此时 在同一个wifi网络的前提下我们可以这么做:

第一种 使用python

直接使用自带python工具开启http服务, 首先打开终端, 进入需要共享的目录,然后运行以下代码即可:

1
python -m SimpleHTTPServer  8000

如果是python3, 则将SimpleHTTPServer改成http.server

1
python -m http.server 8000

image-20220711144617056

紧接着就可以在浏览器上访问了: 在地址栏输入http://127.0.0.1:8000/或者http://localhost:8000/

局域网设备访问

如果局域网内其他设备访问, 则需要先获取到Mac的局域网Ip, 我们可以从系统偏好设置中的网络选项中查看到IP地址:

image-20220711145144222

然后使用http://局域网ip:8000这个地址就可以供其他设备访问啦

第二种 使用Apache

服务开启

Mac本身自带了Apache服务, 我们无需另外安装, 直接开启即可, 打开终端输入以下指令开启:

1
sudo apachectl start

打开服务后, 浏览器输入以下地址即可访问:

1
2
3
4
5
http://127.0.0.1

或者

http://localhost/

img

出现以上页面表示服务启动成功

此时 Apache默认的服务器根目录在:

1
/Library/WebServer/Documents

我们可以将需要共享的文件存放到该目录下, 比如我存放了一张名为111.gif的图片, 那么访问http://127.0.0.1/111.gif即可查看该图

Apache配置目录浏览

可是上面这种操作并不符合我们的预期, 我们想要输入地址后直接列出该目录下的所有文件

这需要对Apache配置文件中进行修改, 其配置文件路径为:

1
/etc/apache2/

文件名为httpd.conf, 修改之前建议大家进行一次备份

打开该文件, 在Options 后面追加一句Indexes

image-20220711151550133

重启apache服务后, 浏览器输入地址就能查看目录了

image-20220711151755973

每次更改了配置, 需要重启服务才能生效, 重启指令如下:

1
2
//重启apache:    
sudo apachectl restart
Apache其他配置
  1. 更改服务根目录

    搜索DocumentRoot关键字

    image-20220711152308158

  2. 更改访问端口

    搜索ServerName关键字, 去掉改行注释, 然后改为ServerName localhost:端口号或者ServerName 127.0.0.1:端口号

    image-20220711152426884

  3. 开启对PHP的支持

    搜索LoadModule, 去掉php7注释

    image-20220711152834896

局域网设备访问

Apache默认开启的是80端口, 因此直接http://局域网ip访问即可

服务关闭

服务一旦开启 每次电脑启动后Apache都会自动跟着开启

平常不用的时候我们可以关闭服务, 减少资源消耗, 关闭指令如下:

1
2
//关闭apache:    
sudo apachectl stop

总结

两种方式, 各有各的好处, apache的强大是毋庸置疑的, 如果只是任意文件夹共享, 直接使用python的方法会更加方便一些

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Mac识别二维码 无需安装第三放应用

发表于 2022-07-09

前言

我们在浏览网页的时候经常会碰到二维码扫描需求, 一般情况下 我们会考虑将二维码图片发送到手机上 然后用手机识别 或者干脆装个第三方扫码软件

为了方便 (主要是懒) 接下来给大家介绍一种使用Safari浏览器二维码识别的方法

具体操作

第一步

选中要识别的二维码图片,把它拖到Safar浏览器打开。

第二步

随后右键点击二维码,选择在新标签页中打开...

新标签页中打开的就是二维码中的内容

是不是很简单 赶紧试试吧~

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

img标签随机获取高质量图片

发表于 2022-07-09

起因

博主打算为自己在vps上挂载的服务, 建立一个导航页, 于是写一个静态页面, 贴了几个超链接

后来, 感觉不美观, 就放了几张图片

服务器存储的图片看了几遍就看腻了, 于是找了一个高质量图片的api, 每次打开导航页都能看到随机的封面

开源图片api的使用

  • 我想获得300*300, 关于book和library的图片”

    1
    https://source.unsplash.com/300x300/?book,library
  • 将随机图片嵌入到html中

    1
    <img src="https://source.unsplash.com/300x300/?book,library">

随机封面效果展示

  • 第一次打开:

img

  • 第二次打开

img

  • 第三次打开

img

  • 第N次打开…

img

随机封面测试地址(页面每次刷新,都能看到不同的封面)

页面部分源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<body>
<section class="clearfix">
<div class="item">
<a href="http://git.zhaoolee.com">
<img src="https://source.unsplash.com/300x300/?program" alt="">
<div class="item-title">私有Git仓库</div>
</a>
</div>


<div class="item">
<a href="http://cloud.zhaoolee.com">
<img src="https://source.unsplash.com/300x300/?document" alt="">
<div class="item-title">私有云网盘</div>
</a>
</div>

<div class="item">
<a href="https://www.jianshu.com/u/c5d047065c42">
<img src="https://source.unsplash.com/300x300/?book,library" alt="">
<div class="item-title">简书主页</div>
</a>
</div>

<div class="item">
<a href="https://github.com/zhaoolee">
<img src="https://source.unsplash.com/300x300/?github" alt="">
<div class="item-title">Github主页</div>
</a>
</div>

<div class="item">
<a href="">
<img src="https://source.unsplash.com/300x300/?cartoon" alt="">
<div class="item-title">在线爬虫(建设中)</div>
</a>
</div>


<div class="item">
<a href="">
<img src="https://source.unsplash.com/300x300/?beauty" alt="">
<div class="item-title">资源分享(建设中)</div>
</a>
</div>
</section>
</body>

小结:

  • 使用随机化开源图片封面, 能让我们每次打开页面都有惊喜.
  • 对于刚刚接触前端的小伙伴, 使用开源的图片库, 能让你的页面更加丰富多彩, 提升学习的兴趣.
  • 对于前端老司机,可以获取定制化的开源图片, 提升页面展示效果.
  • 如果你对图片的质量有极致的追求,https://source.unsplash.com 提供了丰富的接口参数设置,可以定制化随机图片的范围, 当然也可以在unsplash.com 注册一个账号, 订阅特别主题的图片

本文转载自: https://cloud.tencent.com/developer/article/1344365?from=15425

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

给Hexo添加Github贡献日历图

发表于 2022-07-08

图示

样式一

Zfour's github stats

样式二

样式三

小冰的插件效果

接下来给大家介绍它们的实现方法

代码实现

第一种

只需将username的值设置为你的github用户名即可:

1
https://github-readme-stats.vercel.app/api?username=github用户名

然后以图片的形式进行加载:

1
![](https://github-readme-stats.vercel.app/api?username=github用户名)

如果是放置在html中, 替换用户名后 拷贝以下代码:

1
<img src="https://github-readme-stats.vercel.app/api?username=github用户名" referrerpolicy="no-referrer" ">

项目GitHub: github-readme-stats

第二种

和第一种类似, 尾部改成github用户名即可

1
https://ghchart.rshah.org/github用户名

然后以图片的形式进行加载:

1
![](https://ghchart.rshah.org/github用户名)

如果是放置在html中, 替换用户名后 拷贝以下代码:

1
<img src="https://ghchart.rshah.org/github用户名"  referrerpolicy="no-referrer" ">

项目GitHub: githubchart-api

第三种

这种是以hexo插件的形式实现, 具体步骤如下:

  1. 安装插件

    1
    npm i hexo-githubcalendar --save
  2. hexo根目录下的config文件添加如下配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    # Ice Kano Plus_in
    # Hexo Github Canlendar
    # Author: Ice Kano
    # Modify: Lete乐特
    githubcalendar:
    enable: true
    enable_page: /
    user: 你的github用户名
    layout:
    type: id
    name: recent-posts
    index: 0
    githubcalendar_html: '<div class="recent-post-item" style="width:100%;height:auto;padding:10px;"><div id="github_loading" style="width:10%;height:100%;margin:0 auto;display: block"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50" xml:space="preserve"><path fill="#d0d0d0" d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z" transform="rotate(275.098 25 25)"><animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animateTransform></path></svg></div><div id="github_container"></div></div>'
    pc_minheight: 280px
    mobile_minheight: 0px
    color: "['#ebedf0', '#fdcdec', '#fc9bd9', '#fa6ac5', '#f838b2', '#f5089f', '#c4067e', '#92055e', '#540336', '#48022f', '#30021f']"
    api: https://python-github-calendar-api.vercel.app/api
    # api: https://python-gitee-calendar-api.vercel.app/api
    calendar_js: https://cdn.jsdelivr.net/gh/Zfour/hexo-github-calendar@1.21/hexo_githubcalendar.js
    plus_style: ""

    将user属性修改为你的github用户名即可,

    • 其他属性用法可参见《教程:hexo-githubcalendar 插件 1.0》

    • 涉及主题: hexo-theme-butterfly

    • 插件GitHub: hexo-github-calendar

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

解决图片的防盗链导致图片显示不出来

发表于 2022-07-08

前言

你平常有可能将图片存放到github、gitee 或者博客园 简书等等地方, 供静态博客使用, 除了github之外 大部分国内的网站都设置了图片防盗链

如果直接使用会导致图片无法显示

解决防盗链的问题其实也非常简单

解决方案

在html的head标签中添加如下代码即可:

1
<meta name="referrer" content="never">

如果你只想处理某部分图片, 可以针对性设置, 比如:

1
<img src="xxxx.jpg" referrerPolicy="no-referrer" />

批量替换图片域名

偶尔图床CDN挂了需要更换域名, 一些文章存放在数据库,比如wordpress网站 为了方便 可以采用js动态替换的方式, 将以下代码拷贝到html页脚标签中即可

1
2
3
4
5
6
7
8
<script>

let context = Array.prototype.map.call(document.images, (event) => {
event.src = event.src.replace("cdn.jsdelivr.net/gh/xxx/xxx", "raw.staticdn.net/xxx/xxx/master")

});

</script>

另外还可以动态添加meta标签

1
2
3
4
5
6
7
8
9
10
11
const addMeta = (name, content) => {
const meta = document.createElement('meta');
meta.content = content;
meta.name = name;
document.getElementsByTagName('head')[0].appendChild(meta);
};

addMeta(
'referrer',
'never',
);

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

Android锁屏息屏状态下弹出界面

发表于 2022-07-07

前言

最近公司客户端项目需要支持锁屏息屏状态下弹出应用界面, 类似于微信来电显示, 实现方法很简单, 如下:

实现步骤

第一步 在清单文件中添加休眠唤醒和解锁权限
1
2
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
第二步 在需要弹出显示的Activity的onCreate方法中添加相应flag代码
1
2
3
4
5
6
7
8
9
10
11
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED //锁屏显示
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD //解锁
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON //保持屏幕不息屏
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);//点亮屏幕

setContentView(R.layout.activity_main);

}
第三步 触发Activity启动

比如推送触发 后台Service触发 或者IM长连接信令触发等等

1
2
3
4
private void openActivity(Context context, String msg) {
Intent intent = new Intent(context, MainActivity.class)ialarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
context.startActivity(intent);
}
完毕

本文为作者原创转载时请注明出处 谢谢

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

1…141516…50

乱码三千

android程序员一枚,擅长java,kotlin,python,金融投资,欢迎交流~

491 日志
143 标签
RSS
© 2025 乱码三千
本站总访问量次
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4
0%