ngtwewy

方法一,基本方法为每一份主题写一份 CSS 文件,批量替换颜色,例如 style.css、style.dark.css。如果需要切换模式的花,只需要 改变 link 指向的 CSS 文件路径。方法二,使用 SCSS 等工具引入颜色变量在方法一的基础上,生成多个 CSS 文件路径。方法三,使用CSS自定义属性(变量)CSS 原生变量支持,同样一个颜色值可能在成千上百个地方被使用到,如果这个值发生了变化,需要全局搜索并且一个一个替换(很麻烦哎~)。自定义属性在某个地方存储一个值,然后在其他许多地方引用它。属性名需要以两个减号(--)开始,大小写敏感,属性值可以是任何有效的CSS值。和其他属性一样,

2021-07-16    CSS    47
ngtwewy

WordPress 自带的 RESTful API 内置的身份验证方法是 Cookie Authentication ,登录仪表板时,会生成cookie。为了防止CSRF,需要在请求的地址后面,加上一个 nonce 参数“_wpnonce”。CSRF请参考:https://javascript.net.cn/article?id=683nonce生成,参考:https://verytheme.com/archives/136如果想使用JWT(JSON Web Token),官方建议使用插件 https://wordpress.org/plugins/jwt-authentication-for

2021-07-15    Wordpress    39
ngtwewy

一,什么是懒加载?一般情况下,当一个页面加载以后,图片也会开始全部加载,这样会增加客户端和服务器的压力。为了减轻负担,让图片先出现在浏览器视口以后再进行加载。方法一,使用三个相关API:1,获取可视区域的高度 document.documentElement.clientHeight2,获取元素到文档顶部的高度 element.offsetTop3,获取浏览器窗口顶部与文档顶部之间的距 document.documentElement.scrollTopvar imgs = document.querySelectorAll('.lazyload-img'); //循环获取直到页面顶部的高

2021-06-01    JavaScript    72
ngtwewy

实现瀑布流有两种方法。HTML: 第一种,仅仅使用CSS即可实现.media-list.waterfall{ column-count: 3; //多列的列数 column-gap: 20px; //列间距 .media-image { break-inside: avoid; background-color: #5f5f5f; overflow: hidden; margin-bottom: 20px; border-radius: 5px; border: 1px solid #e7e7e7; i

2021-06-01    CSS    57
ngtwewy

使用concat协议进行拼接两个mp4视频,报错:“Found duplicated MOOV Atom. Skipped”。ffmpeg -i "concat:1.mp4|2.mp4" -c copy output.mp4 原理上是因为 concat协议,实际上就只是把两个视频直接拼接,把后一个视频直接贴到前一个视频后面而已,因此只会适用于ts和flv等一些格式。mp4格式整体有一层容器,需要先解开容器再对提取的视频流进行拼接。解决方法:创建一个list.txt文件如下:file '/path/1.mp4' file '/path/2.mp4' file '/path/3.mp4'

2021-05-21    FFmpeg    120
ngtwewy

Nginx 会根据mime type告诉浏览器如何处理服务器返回的文件,是打开还是下载。默认的 default_type定义的是 default_type application/octet-stream;mime type 和文件扩展名的对应关系一般放在 mime.types这个文件里,然后用 include mime.types; 来加载mime.types文件里是用types指令来定义的文本:location /test { default_type text/html; return 200 'This is text!'; } JSON:location /test

2021-05-20    Nginx    211
ngtwewy

网站中图片过大无法正常显示,通常显示一半,就提示502错误了,Nginx 错误日志代理提示:2021/05/19 16:28:35 [crit] 10976#0: *13 open() "/nginx_dir/proxy_temp/2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 200.130.237.38, server: test.com, request: "GET /uploads/images/20210220/48a18881fa3b45781b512f2376c9bef

2021-05-19    Nginx    82
ngtwewy

1, MySQL生成随机数的函数 RAND()select RAND(); 0.10994928061026081 2, 获取上面那个随机数以后,便可以通过 CEILING() 向上取整 或 FLOOR() 向下取整,以获取随机整数。 例子:-- 生成 3 位的随机数 SELECT CEILING(RAND()*900+100); -- 生成 4 位的随机数 SELECT CEILING(RAND()*9000+1000); -- 生成 5 位的随机数 SELECT CEILING(RAND()*90000+10000);

2021-05-18    MySQL    88
ngtwewy

location 匹配~ #匹配一个正则表达式,区分大小写 ~* #匹配一个正则表达式,不区分大小写 ^~ #匹配普通字符,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录 = #进行普通字符精确匹配 @ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files 演示:location = / { # 只匹配"/" } location / { # 匹配所有请求,长字符或者正则表达式会优先匹配 } location ^~ /images/ { # 匹配任何以 /images/ 开始的请求,并

2021-05-11    Nginx    201
ngtwewy

MainRule例子:MainRule "str:--" "msg:mysql comment (--)" "mz:BODY|URL|ARGS|$HEADERS_VAR:Cookie" "s:$SQL:4" id:1007; MainRule的匹配模式有:str:字符串 rx:正则表达式 d:libinj_xss:libinjection检测为xss d:libinj_sql:libinjection检测为sql注入 ”str:--”,代表匹配 -- 这个字符。"msg:mysql comment (--)" 用于描述规则。"mz:BODY|URL|ARGS|$HEADERS_VAR

2021-05-11    Nginx    97
ngtwewy

$date 2021年 05月 11日 星期二 08:30:53 CST $timedatectl Local time: 二 2021-05-11 08:31:00 CST Universal time: 一 2021-05-10 20:31:00 UTC RTC time: 一 2021-05-10 20:31:00 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a timedatectl

2021-05-11    Linux    91
ngtwewy

介绍一个 Koa.js 的 SESSION 的中间件安装npm install koa-session 例子const session = require('koa-session'); const Koa = require('koa'); const app = new Koa(); app.keys = ['some secret hurr']; const CONFIG = { key: 'koa:sess', //cookie key (default is koa:sess) maxAge: 86400000, // cookie的过期时间 maxA

2021-05-09    Node.js    105
ngtwewy

介绍koa-body 是一个可以帮助解析 http 中 body 的部分的中间件,包括 json、表单、文本、文件等。还有一个常用的类似扩展 koa-bodyparser对比其中,koa-bodyparser 不可以直接处理文件,需要上传文件的时候,还需要引用另外一个中间件 koa-multer,项目地址和使用数量如下:koa-body Used by 31.6khttps://github.com/dlau/koa-bodykoa-bodyparser Used by 73.1k https://github.com/koajs/bodyparser代码示例// 初始化 const koa

2021-05-08    Node.js    97
ngtwewy

简介Node.js 的 JSON Web Token 模块有很多,我选择使用 jsonwebtoken。项目地址: https://www.npmjs.com/package/jsonwebtoken安装npm install jsonwebtoken --save 用法const jwt = require("jsonwebtoken") const secret = "some word"; let payload = {}; payload.data = data || {}; //token 中包含的数据 payload.ctime = (new Date()

2021-05-06    Node.js    89
ngtwewy

一,Fetch API 介绍Fetch API提供了一个 JavaScript 接口,用于访问和操纵HTTP的请求和响应等。提供了一个全局 fetch()方法来跨网络异步获取资源。fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。二,基本用法:fetch('https://test.com/api/info') .then(response => response.json()) .then(json => console.log(json)) .catch(err => console.log('Request

2021-05-06    JavaScript    104
ngtwewy

SSH 密码登录#!/usr/bin/expect -f set password "123456" set timeout -1 spawn ssh user@xxx.xxx.xxx.xx expect "*assword:*" send "$password\r" expect "Last*" interact SSH 证书登录#!/usr/bin/expect -f set password "123456" set timeout -1 spawn ssh -i /Users/user/Cert/id_rsa user@xxx.xxx.xxx.xx -p 3002

2021-05-06    macOS    80
ngtwewy

简介Nodemailer 是一个简单易用的 Node.JS 邮件发送模块(通过 SMTP,sendmail,或者 Amazon SES),支持 unicode,你可以使用任何你喜欢的字符集。安装npm install nodemailer --save 代码示例:const nodemailer = require('nodemailer'); const config = { smtp: { host: "smtp.163.com", username: "123123123@163.com", password: "123123123" } }; fu

2021-05-06    Node.js    109
ngtwewy

常用的Node.js图片处理模块,有node-image、sharp和jimp。node-image很轻量,但是处理gif有点问题,更新还有点慢了。sharp跨操作系统部署的时,常常还需要编译一下。所以,jimp也是一个很好的选择。介绍:An image processing library for Node written entirely in JavaScript, with zero native dependencies.看这个官方介绍也说了,完全使用Node写的的库,无原生依赖。 支持图片类型bmp、gif、jpeg、png和tiff。安装:npm install --save j

2021-05-05    Node.js    131
随机推荐
Nodejs base64编码与解码
PDO 中 bindParam 和 bindValue 的区别
Apache自带的ab压力测试工具
NodeJs通过async/await处理异步
关于字符的一些基础知识
新媒体工作者的日常
Git 对库文件权限的管理 git config core.filemode
高清 MKV 免重编码快速转换成 mp4 格式
Apache限制虚拟主机网速「mod_bw」
JS性能优化 document.createDocumentFragment