VMware Workstation

官网下载地址

VMware Workstation Pro 16.1.0 Build 17198959
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.1.0-17198959.exe

VMware Workstation Pro 16.0.0 Build 16894299
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-16.0.0-16894299.exe

VMware Workstation Pro 15.0.0 Build 10134415
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.0.0-10134415.exe

VMware Workstation Pro 14.1.3 Build 9474260
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-14.1.3-9474260.exe

VMware Workstation Pro 12.5.9 Build 7535481
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-12.5.9-7535481.exe

VMware Workstation 10.0.7 Build 2844087
https://download3.vmware.com/software/wkst/file/VMware-workstation-full-10.0.7-2844087.exe

激活许可证

VMware Workstation Pro 16 激活许可证
ZF3R0-FHED2-M80TY-8QYGC-NPKYF
YF390-0HF8P-M81RQ-2DXQE-M2UT6
ZF71R-DMX85-08DQY-8YMNC-PPHV8

VMware Workstation Pro 15 激活许可证
UY758-0RXEQ-M81WP-8ZM7Z-Y3HDA
VF750-4MX5Q-488DQ-9WZE9-ZY2D6
UU54R-FVD91-488PP-7NNGC-ZFAX6
YC74H-FGF92-081VZ-R5QNG-P6RY4
YC34H-6WWDK-085MQ-JYPNX-NZRA2
FG78K-0UZ15-085TQ-TZQXV-XV0CD
ZA11U-DVY97-M81LP-4MNEZ-X3AW0
YU102-44D86-48D2Z-Z4Q5C-MFAWD
FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6

VMware Workstation Pro 14 激活许可证
FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA
CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD

VMware Workstation Pro 12 激活许可证
5A02H-AU243-TZJ49-GTC7K-3C61N
VF5XA-FNDDJ-085GZ-4NXZ9-N20E6
UC5MR-8NE16-H81WY-R7QGV-QG2D8
ZG1WH-ATY96-H80QP-X7PEX-Y30V4
AA3E0-0VDE1-0893Z-KGZ59-QGAVF
ZC3TK-63GE6-481JY-WWW5T-Z7ATA

VMware Workstation Pro 10 激活许可证
1Z0G9-67285-FZG78-ZL3Q2-234JG
4C4EK-89KDL-5ZFP9-1LA5P-2A0J0
HY086-4T01N-CZ3U0-CV0QM-13DNU

解锁安装 macos

Auto-Unlocker 支持 Pro 16:https://github.com/paolo-projects/auto-unlocker/releases

下载完成后,解压 Unlocker.zip 文件放置于 VMware 根目录,并选择以管理员身份运行 Unlocker.exe 文件

可能需要关闭 VMware 的一切服务,包括正在运行的 VMware

下载地址:
链接:https://pan.baidu.com/s/1pyTC89kIVjIDAocMAZbP4Q
提取码:wqdy

unlocker
https://github.com/DrDonk/unlocker

jfif(JPEG File Interchange Format,JPEG 档案交换格式)格式是一种图片存储格式之一,由 JPEG 格式衍生而来

win10 中,在浏览器中通过图片另存为时发现默认保存为该格式时,说明系统把 JPEG 格式默认为了该格式,可以通过修改注册表还原,具体操作步骤如下:

  • WIN + R 打开运行窗口,输入 regedit 回车
  • 找到路径 HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg,把 extension 的值改成 .jpg,关闭注册表即可

RoughJS 是一个轻量级的 JavaScript 图形库(压缩后约 9KB),可以让你在网页上绘制素描风格、手绘样式般的图形。RoughJS 定义了绘制直线,曲线,圆弧,多边形,圆和椭圆的图元,同时它还支持绘制 SVG 路径。

Rough.js 可同时用于 Canvas SVG

网站地址:https://roughjs.com/

使用手册:https://www.tutorialdocs.com/tutorial/roughjs/get-started.html

在 SEO 的角度,我们不宜在网站中设置过多的外链,防止搜索引擎蜘蛛在爬虫你的网站时跳出到其他网站。因此,了解并为外链加上 nofollow 链接是非常有必要的(除非这些外链与你的网站有利益关系,比如是你的其他网站又或者是合作伙伴的网站)。

什么是 nofollow 链接

Nofollow 链接是带有 rel =”nofollow” HTML 标记的链接。 nofollow 标签可帮助搜索引擎了解要忽略目标链接,并且不会将网页(放置 nofollow 链接)的 PageRank 传递给此类链接。

以下链接类型应该设置为 nofollow 链接:返利链接,赞助商链接,广告链接,社交媒体链接,不可信 / 不可靠网站内容链接

如何建立 Nofollow 链接

将下面的代码添加到主题的 functions.php 文件即可:

如果不想直接修改 functions.php 文件,可以使用 Code Snippets 插件

// 文章外部链接加上nofollow
add_filter( 'the_content', 'nf_url_parse');
function nf_url_parse( $content ) {

$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";
if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {
if( !empty($matches) ) {

$srcUrl = get_option('siteurl');
for ($i=0; $i < count($matches); $i++)
{

$tag = $matches[$i][0];
$tag2 = $matches[$i][0];
$url = $matches[$i][0];

$noFollow = '';

// $pattern = '/target\s*=\s*"\s*_blank\s*"/';
// preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
// if( count($match) < 1 )
// $noFollow .= ' target="_blank" ';

$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';
preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);
if( count($match) < 1 )
$noFollow .= ' rel="nofollow" ';

$pos = strpos($url,$srcUrl);
if ($pos === false) {
$tag = rtrim ($tag,'>');
$tag .= $noFollow.'>';
$content = str_replace($tag2,$tag,$content);
}
}
}
}

$content = str_replace(']]>', ']]>', $content);
return $content;

}

检查 nofollow 链接是否生效

使用浏览器的 检查 功能查看 nofollow 链接

使用浏览器打开页面,移动鼠标光标至你想要检查的链接上方。

右击鼠标按钮,选择 检查 选项 (以 Chrome 为例,不同浏览器选项叫法不太一样)

代码查看窗口将在浏览器的底部 / 右侧打开。你可以通过查看 HTML 代码查看链接是否添加了 rel=”nofollow”。

使用 Chrome 扩展组件(插件)检查页面 nofollow 链接

下载名为 NoFollow 的 Chrome 扩展组件,安装该插件后重新加载页面,该网页上的所有 nofollow 链接都将会高亮突出显示。

给网站添加语言

打开 theme/dux/header.php 文件,修改如下内容

<!DOCTYPE HTML>
-<html>
+<html lang="zh">

修改面包屑导航位置

打开 theme/dux/single.php 文件,修改如下内容

<?php get_header(); ?>
-<?php if( _hui('breadcrumbs_single_s') ){ ?>
- <div class="breadcrumbs">
- <div class="container"><?php echo hui_breadcrumbs() ?></div>
- </div>
-<?php } ?>
<section class="container">
+ <?php if( _hui('breadcrumbs_single_s') ){ ?>
+ <div class="breadcrumbs">
+ <div class="container"><?php echo hui_breadcrumbs() ?></div>
+ </div>
+ <?php } ?>
<div class="content-wrap">
<div class="content">

添加自定义样式

/* 面包屑导航 */
.breadcrumbs {
box-shadow: none;
background: none;
margin-bottom: 0;
}

PADAVAN(老毛子)固件

H 大固件地址http://opt.cn2qq.com/padavan/

k2 路由器下载 RT-AC54U-GPIO-1-PSG1218-64M**.trx 文件

K2P 各固件的区别,供大家参考:
K2P_V5_3.4.3.9-099.trx 这是 K2P 的 MTK 平台原版未改版最新 v5.0 无线驱动固件
K2P_DRV_V5_3.4.3.9-099.trx 这是 K2P 的 MTK 平台硬改 USB 最新 v5.0 无线驱动固件
K2P_DRV_512M_3.4.3.9-099.trx 这是 K2P 的 MTK 平台硬改 512MB 内存 (RAM) 和 USB 稳定 v4.0 无线驱动固件
K2P_DRV_256M_3.4.3.9-099.trx 这是 K2P 的 MTK 平台硬改 256MB 内存 (RAM) 和 USB 稳定 v4.0 无线驱动固件
K2P_DRV_3.4.3.9-099.trx 这是 K2P 的 MTK 平台硬改 USB 稳定 v4.0 无线驱动固件
K2P_3.4.3.9-099.trx 这是 K2P 的 MTK 平台原版未改版稳定 v4.0 无线驱动固件

管理地址:192.168.123.1
管理账号:admin
管理密码:admin

HANWCKF 固件地址 https://pan.baidu.com/s/1kU8YqrH 提取码: hmdn

k2p 源码 https://github.com/hanwckf/rt-n56u

灯大固件http://rom.nanodm.net/

waynezwd 的固件地址https://pan.baidu.com/s/1KvlWl4Hr1DwY2N0NxgzeBA 提取码: w5e8

高恪免费路由固件

http://www.gocloud.cn/bbs/forum-51-1.html

lede

OpenWrt 固件 https://github.com/coolsnowwolf/lede

魔改固件下载 http://lean.ys168.com/

论坛

https://www.right.com.cn/forum/forum.php

http://www.gocloud.cn/bbs/forum.php

  1. 开放 443 端口

  2. 域名证书有效且配置正确

  3. ssl 配置问题

正确启用 HTTP/2 支持,正确配置 ssl_protocols 和 ssl_ciphers

启用 HTTP2 并非只在 listen 443 ssl 配置中加入 http2 就行了,它主要需要两个地方的设置支持:ssl_protocols 和 ssl_ciphers 。

修改如下配置以向后兼容

listen 443 ssl http2;
- ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;

在线 http2 检测

https://www.rosehosting.com/network-tools/http2-support.html

https://myssl.com/http2_check.html

https://www.ssllabs.com/ssltest/analyze.html


参考链接:https://juejin.im/post/59bb864b5188257e7a427c09

使用 iconfont

阿里开源图库 https://www.iconfont.cn/

使用方法 https://www.iconfont.cn/help/detail?spm=a313x.7781069.1998910419.d8d11a391&helptype=code

下载代码到本地(也可以使用在线链接)打开 demo_index.html 使用说明,有三种使用方式 unicode font-class symbol
unicode 方式: &#x33; 这样,不直观,语意不明确,不支持多色图标
font-class 方式: 使用 class 定义,有语意,需要注意命名空间的问题,也是不支持多色图标
symbol 方式:使用 svg 不用再去请求 woff|eot|ttf| 这些字体库,且缩放不会失真,支持更加复杂的图标

symbol 方式使用步骤:

第一步:引入项目下面生成的 symbol 代码:

<script src="./iconfont.js"></script>

或通过 import 导入

import './iconfont.js'

第二步:加入通用 CSS 代码:

.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}

第三步:挑选相应图标并获取类名,应用于页面:

<svg class="icon" aria-hidden="true"><use xlink:href="#icon-xxx"></use></svg>

symbol 其实使用了 SVG Sprite 技术, 所有的 svg-sprite 都是通过 iconfont 的 iconfont.js 生成的,所以:

所有图标 icon 都很不直观,完全不知道哪个图标名对应什么图标,每次增删改图标,或者添加一些自定义的 svg 图标,只能将其也上传到 iconfont 和原有的图标放在一个项目库中,之后再重新下载,将整体 js 文件一起替换,而且也做不到按需加载

导出的 svg 包含大量的无用信息,例如编辑器源信息、注释等。通常包含其它一些不会影响渲染结果或可以移除的内容

vue cli3 项目使用 svg-sprite-loader 打包 svg

vue cli3 默认使用 file-loader 处理 svg:

/* config.module.rule('svg') */
{
test: /\.(svg)(\?.*)?$/,
use: [
/* config.module.rule('svg').use('file-loader') */
{
loader: 'file-loader',
options: {
name: 'static/img/[name].[hash:8].[ext]'
}
}
]
}

并路径指定为在 img 文件夹下,但我们的 svg 并不在 img 文件夹,而且 svg-sprite-loader 已经自带了 file-loader 的功能,所以,我们可以在我们自定义的 vue.config.js 文件下将 rule (svg) 清除:

module.exports = {
chainWebpack: config => {
config.module.rule('svg').uses.clear()
}
}

或者添加忽略,然后加上自定义的 svg rule,最后的配置如下:

/* 使用 svg-sprite-loader 处理 svg */
// 默认规则忽略 src/icons 文件夹
config.module
.rule('svg')
.exclude.add(path.resolve(__dirname, 'src/icons'))
.end()

// src/icons 文件夹下的 svg 使用 svg-sprite-loader
config.module
.rule('svg-sprite-loader')
.include.add(path.resolve(__dirname, 'src/icons'))
.end()
.test(/\.svg$/)
.use('svg-sprite')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end()

之后可以通过如下方式使用

import '@/icons/qq.svg'
<!-- xlink:href="#icon-图标文件名 -->
<svg><use xlink:href="#icon-qq" /></svg>

使用缺点:需要手动导入图标

自动导入

使用 webpack 的 require.context api

require.context 语法

require.context(directory, (useSubdirectories = false), (regExp = /^\.\//))
// directory:说明需要检索的目录
// useSubdirectories:是否检索子目录
// regExp: 匹配文件的正则表达式
// Examples:
require.context('./test', false, /\.test\.js$/)
// 表示在 test 文件夹(不包含子目录)下面的找所有文件名以 .test.js 结尾的能被 require 的文件

自动引入 @/icons 下面所有的图标

// 基础组件的自动化全局注册
const requireComponent = require.context('../../components', false)
// console.log(requireComponent.keys())
requireComponent.keys().forEach(filename => {
const componentConfig = requireComponent(filename)
// console.log(componentConfig)

const componentName = filename
.split('/')
.pop()
.replace(/\.\w+$/, '')
// console.log(componentName)

Vue.component(
componentName,
// 如果这个组件选项是通过 `export default` 导出的,
// 那么就会优先使用 `.default`,
// 否则回退到使用模块的根。
componentConfig.default || componentConfig
)
})
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('@/icons', false)
requireAll(req)

之后直接将图标放入 @/icons 文件夹下就可以直接使用了,删改图标同理

优化 svg

删除无用信息 svgo
阿里云导出的 svg 是带有默认的 fill 的,导致图标不能继承父级元素的颜色,可以通过删除默认 fill 解决

安装

npm i svgo svgo-loader -D
config.module
.rule('svg-sprite-loader')
.include.add(path.resolve(__dirname, 'src/icons'))
.use('svgo-loader')
.loader('svgo-loader')
.tap(options => {
options = {
plugins: [
{ removeXMLNS: true }, // 删除xmlns属性(对于内联svg,默认情况下禁用)
{ convertStyleToAttrs: true } // 将css样式转换为svg元素属性
]
}
return options
})

也可以在图标管理中 我的项目 批量操作 批量去色 将默认颜色去除, 之后可以通过 css 自定义颜色

svg {
fill: red;
}