-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontent.json
1 lines (1 loc) · 40.9 KB
/
content.json
1
{"meta":{"title":"我的博客","subtitle":"又一个GoodHexo小站","description":"基于GoodHexo便携包搭建的博客,官方网站:http://yiwangmeng.com","author":"凹凸曼达人","url":"http://yiwangmeng.com","root":"/"},"pages":[{"title":"关于本站","date":"2021-04-20T11:46:15.722Z","updated":"2021-04-20T11:46:15.722Z","comments":false,"path":"about/index.html","permalink":"http://yiwangmeng.com/about/index.html","excerpt":"","text":"这是个互联网精神病患者个人小站,完全出于兴趣爱好自封互联网研究院院长,乐于分享计算机相关使用方法,推广优质实用软件。所有技术类文章除特别说明外均为本站原创,所提供的软件为院长原创或由网络整理而来。 本院始终坚信: 分享是种美德,好人一生平安! 本着尊重国家法律的精神,根据中华人民共和国国务院令第632号规定: 第十七条 为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。 本站所有资源均为学习,交流使用,不得用于任何商业用途。使用的软件请下载后24小时内自行删除,若由于研究学习本站提供文件或链接下载的软件而带来损失,本站不负任何责任。 如果您发现本站侵害了您的版权,请联系院长并出示版权证明,院长将第一时间进行相关处理。 如果您也一样热爱互联网,喜欢捣鼓软件,欢迎评论留言或与院长联系。 QQ群:键盘侠 260489333,点此加群"},{"title":"archives","date":"2020-07-18T05:10:34.000Z","updated":"2021-04-20T11:46:15.722Z","comments":false,"path":"archives/index.html","permalink":"http://yiwangmeng.com/archives/index.html","excerpt":"","text":""},{"title":"categories","date":"2020-08-30T03:41:17.000Z","updated":"2021-04-20T11:46:15.722Z","comments":false,"path":"categories/index.html","permalink":"http://yiwangmeng.com/categories/index.html","excerpt":"","text":""},{"title":"contact","date":"2020-08-30T14:45:09.000Z","updated":"2021-04-20T11:46:15.722Z","comments":false,"path":"contact/index.html","permalink":"http://yiwangmeng.com/contact/index.html","excerpt":"","text":""},{"title":"friends","date":"2020-08-30T14:40:51.000Z","updated":"2021-04-20T11:46:15.722Z","comments":false,"path":"friends/index.html","permalink":"http://yiwangmeng.com/friends/index.html","excerpt":"","text":""},{"title":"","date":"2016-12-31T10:09:56.000Z","updated":"2016-12-31T10:09:56.000Z","comments":false,"path":"history/index.html","permalink":"http://yiwangmeng.com/history/index.html","excerpt":"","text":""},{"title":"","date":"2017-02-24T09:37:05.000Z","updated":"2017-02-24T09:37:05.000Z","comments":false,"path":"tags/index.html","permalink":"http://yiwangmeng.com/tags/index.html","excerpt":"","text":""}],"posts":[{"title":"GoodHexo仓库版使用简介","slug":"how-to-use-goodhexo","date":"2021-04-20T05:47:30.000Z","updated":"2021-04-20T05:47:30.000Z","comments":true,"path":"how-to-use-goodhexo.html","link":"","permalink":"http://yiwangmeng.com/how-to-use-goodhexo.html","excerpt":"","text":"这是一篇针对特定方案完工后的使用简介,其他更多更详细的细节教程请借助搜索引擎完成。 基于此方案,我们只需要维护 MarkDown源文件仓库 ,每次提交源文件仓库后, 将自动触发 Action 完成渲染及部署工作。 适用方案MarkDown源文件仓库 → Action → GitHub page / 云服务器 使用步骤1. 克隆仓库到本地用GUI工具或者使用以下命令将 MarkDown源文件仓库 克隆到本地: 1git clone 远程仓库地址 本地存放文件夹 --recursive 其中 本地存放文件夹 根据个人实际情况及喜好确定,比如 D:\\blogMarkDown , --recursive 参数会将包含的 Git submodule 子模块 一并克隆,本来就没有子模块管理的可以省略该参数。 2. 内容增/删/改如果本地已经安装hexo,hugo等环境,那么使用对应的命令即可创建新文章,页面等。 如果本地不需要或者未安装这种环境,其实我们只需要复制一篇现成的文档,然后用编辑器修改即可,无非就是对应的 Front-matter 格式要保留,下面是个示例: 123456789101112131415---title: '这是个Hexo文章标题示例' #文章标题,新建文章的时候填的会自动写到这里date: 2018-1-12 17:19:27 #文章创建时间categories: 搞软件 #分类,也可以如下一行那种换行后写分类tags: #标签 - 晒酷软 #这是个标签 - 做网站 #这是另一个标签toc: true #是否显示目录,false不显示,true显示,需要主题支持top: #填数字,值越大的文章在首页就越置顶,本包已集成comments: true #是否允许评论,需要主题支持keywords: '' #文章关键词,需要主题支持description: '文章摘要,可以是一大段,可以换行,用英文引号括起来' #不填则根据主题设计截取对应字数---上面部分是规定的头部信息,这行开始就是文章内容了... 注意:每一个参数的 : 或者 - 后,都需要至少留一个空格,如果不填值就无所谓,或者将参数行删除都行,就是不能不留空格直接写,否则会报错。 编辑器推荐用 vscode 之类,切忌用Windows系统自带的记事本。举个栗子: 3. 提交到线上仓库内容编辑完了,那就可以提交到线上仓库触发 Action 了,根据既定的 Action 规则,最终应该会完成渲染发布到指定的仓库或者服务器. 提交内容到仓库可以借助GUI工具,vscode 或者 github desktop 之类工具就没什么好说的了,也可以使用下方的命令: 123git add --allgit commit -m "commit message"git push 4. 查看结果提交后要不了几分钟,等服务器刷新缓存,就能看到最终的 Action 结果了,对应的 GitHub page 仓库或者服务器上会有内容提交, Action 任务也有对应的详细运行日志,可自行到仓库中查看。 如果渲染成功,那对外的 GitHub page 网站上应该就有你更新后的内容了。 知识扩展配置密钥生成密钥对有些系统对密钥安全等级是有要求的,默认的 256CRC 算法可能认证不通过,一般都使用 rsa 算法类型: 1ssh-keygen -t rsa -C "comment" ssh-keygen 会默认保存到 ~/.ssh/id_rsa ,然后它会要求你输入两次密钥口令, .pub 文件是你的公钥,另一个则是与之对应的私钥。 如果你不想在使用密钥时输入口令,将其留空即可。 然而,如果你使用了密码,那么请确保添加了 -o选项,它会以比默认格式更能抗暴力破解的格式保存私钥,但相应的使用的时候记得输密码,一般留空即可。 部署密钥现在,进行了上述操作的用户需要将各自的公钥发送给任意一个服务器管理员 (假设服务器正在使用基于公钥的 SSH 验证设置)。 他们所要做的就是复制各自的 .pub 文件内容,添加到 Git 的发布key或者系统的 ~/.ssh/authorized_keys ,一行一个,或者直接通过下方命令完成部署: 1ssh-copy-id -i ~/.ssh/id_rsa.pub '用户名@服务器地址' -p 'ssh端口' 验证密钥是否部署成功,可以用下面的命令测试: 1ssh -Tv '用户名@服务器地址' -p 'ssh端口' #测试ssh连接是否成功 各系统对各种符号的兼容处理可能不同,如配置时百思不得其解可以考虑下比如回车换行兼容问题。 修改及配置主题本包把主题配置文件放到了hexo根目录下,所以只需要修改根目录下配置,如启用 matery 主题,则修改 _config.yml中: 1234# Extensions## Plugins: https://hexo.io/plugins/## Themes: https://hexo.io/themes/theme: matery ##表示指向 themes/matery 这个目录 然后根据主题说明文档修改 _config.matery.yml 这个就可以了,你也可以将该文件删除去修改主题目录下的 _config.yml , hexo/_config.matery.yml 这个文件存在就会自动忽略 hexo/themes/matery/_config.yml ,新增其他主题方法以此类推。 Git submodule 子模块 更新引入 Git submodule 子模块 的作用是方便同步上游项目更新,比如主题作者更新内容了想同步,我们只需要运行下方命令更新: 12cd themes/xxx #先切换到对应的主题目录下,目录根据实际情况输git submodule update 本包已经把主题配置放到了 hexo 配置同级目录,除非配置项发生改变,否则可以大胆更新同步 删除 Git submodule 子模块也许有人觉着 Git submodule 子模块 挺鸡肋的,那也可以删除掉,没有直接的删除命令,需要手动删除配置信息,以删除一个名为 assets 的文件夹为例: 删除子模块文件夹12git rm --cached themes/assetsrm -rf assets 删除 .gitmodules 文件中相关子模块信息123[submodule "assets"] path = assets url = https://github.com/maonx/vimwiki-assets.git 删除 .git/config 中的相关子模块信息12[submodule "assets"] url = https://github.com/maonx/vimwiki-assets.git 删除 .git 文件夹中的相关子模块文件1rm -rf .git/modules/assets 删除完如果你还需要这个主题,自然是将对应主题文件以普通文件夹的方式整个放到 themes 目录,然后当成主仓库的一部分提交,下次每一个改动都体现在主仓库的更改日志中。 原文出处GoodHexo仓库版使用简介","categories":[],"tags":[]},{"title":"网页模板 pug 基本语法","slug":"hexo-pug-notes","date":"2020-12-10T07:22:57.000Z","updated":"2020-12-10T07:22:51.000Z","comments":true,"path":"hexo-pug-notes.html","link":"","permalink":"http://yiwangmeng.com/hexo-pug-notes.html","excerpt":"","text":"前言pug 原名 jade ,因版权问题更名为 pug ,即哈巴狗。与 hexo 默认模块 ejs 一样,pug 也是一个模板引擎,可用于快速的网站开发,当然也可以用于静态博客网站的设计。本站点现时所用主题 manupassant 也使用了 pug 。 本文针对 Hexo 中使用 pug 的情况为例,说明其基本语法。 安装12345# common installnpm install pug# install for hexo blognpm install hexo-renderer-pug --save 语法pug 不同于 html ,前者不需要标签的开和闭,如 html 的 <p>Demo</p> ,在 pug 使用 p Demo 即可。 缩进pug 对空格敏感,有点类似 python 对制表符tab敏感。pug 使用空格作为缩进符,当然用 soft tab 也可行。同一级标签需保证左对齐。 123div p Hello, world! p Hello, pug. 渲染结果如下: 1234<div> <p>Hellow, world!</p> <p>Hello, pug.</p></div> 注释pug 使用 //- 或 // 对代码进行注释,前者注释内容不出现在渲染后的 html 文件中,后者反之。 12//- html中不包含此行// html中会包含此行 属性pug 将标签属性存放于括号 () 内,多个属性之间以 逗号 或 空格 分隔。此外,对于标签的 id 和 class ,pug 使用 # 紧跟标签 id ,使用 . 紧跟标签 class ,可以同时设置多个 class 。 12h1#title Test titleimg#name.class1.class2(src="/test.png" alt="test") 渲染结果如下: 12<h1 id="title">Test title</h1><img id="name" class="class1 class2" src="/test.png" alt="test"> 包含为了方便代码复用,pug 提供了 include 包含功能,以下代码会将 _partial 目录下的 head.pug 文件内容包含到当前调用的位置。有点 C/C++ 中内联函数的意思。 123doctype htmlhtml(lang='en') include _partial/head.pug 继承下面是一个简单的 base 模板,通过 block 定义了页面头部 head 和内容 body 。块 block 有点类似 C/C++ 的抽象函数,需要在继承者中完成定义,填充具体内容。 123456//- base.pughtml head block title body block content 以下文件使用 extends 继承以上模板,通过 block 覆盖或替换原有块 block 。当然,继承者也可以在原有基础上继续扩展。 123456789//- index.pugextends base.pugblock title title "Test title"block content h1 Hello world! block article 定义变量pug中通过 - var name = value 的形式定义变量 123456- var intData = 100- var boolData = false- var stringData = 'Test'p.int= intDatap.bool= boolDatap.stringData= stringData 需注意的是,在引用变量时,需要在引用位置加上=号,否则会默认将变量名当成普通字符串使用。 如果想要将变量与其它字符串常量或是变量连接在一起,就不能用等号了,而是应该用 #{} ,该符号会对大括号内的变量进行求值和转义,最终得到渲染输出的内容。 1234- var girl = 'Lily'- var boy = 'Jack'p #{girl} is so beautiful!p And #{boy} is handsome. 条件结构pug 的条件语句与其它语言类似,均是如下这般: 12345678- var A = {value: 'Test'}- var B = trueif A.value p= A.valueelse if B p= Belse p nothing 迭代pug 中使用 each 和 while 实现循环迭代,each 可以返回当前所在项的索引值,默认从 0 开始计数。 12345678910//- eachol each item in ['Sun', 'Mon', 'Tus', 'Wen', 'Thu', 'Fri', 'Sat'] li= item//- get index of each- var week = ['Sun', 'Mon', 'Tus', 'Wen', 'Thu', 'Fri', 'Sat']ol each item, index in week li= index + ':' + item 渲染成 html 后: 123456789101112131415161718<ol> <li>Sun</li> <li>Mon</li> <li>Tus</li> <li>Wen</li> <li>Thu</li> <li>Fri</li> <li>Sat</li></ol><ol> <li>0:Sun</li> <li>1:Mon</li> <li>2:Tus</li> <li>3:Wen</li> <li>4:Thu</li> <li>5:Fri</li> <li>6:Sat</li></ol> while 调用方式如下: 12345//- while- var day = 1ul while day < 7 li= day++ Minixmixin 名曰混入,类似其它编程语言中的函数,也是为了代码复用,可带参数或不带参数,定义方式如下: 1234mixin menu-item(href, name) li span.dot ● a(href=href)= name 其中,menu-item 为调用时所用名称,可认为是函数名,href 及 name 是参数。同上定义变量所说,a(href=href)= name 中第二个 = 是为了将后面的 name 当作参数来处理,而不是当作字符串 "name" 来处理。 调用 mixin 定义的代码块,需通过 + 号紧跟 mixin 名称及参数: 12+menu-item('/Archives','Archives')+menu-item('/About','About') mixin 之所以称为混入,是因为其语法不局限于函数调用,在 mixin 可以使用块 block 12345678910mixin print(post) if block block else p= post+print("no block")+print("") div.box p this is the content of block 对应 html 代码: 12<p>no block</p><div class="box"><p>this is the content of block</p></div> JavaScript 注意以下 pug 语句中第一行的 . 号。 1234567script(type='text/javascript'). var data = "Test" var enable = true if enable console.log(data) else console.log('nothing') 对应的 JS 代码如下: 12345678<script type='text/javascript'> var data = "Test" var enable = true if enable console.log(data) else console.log('nothing')</script> 对于简单脚本,使用 pug 尚可,复杂的还是单独写到 .js 文件中,然后通过 pug 引用方便一些,引用方式如下: 1234script(type='text/javascript', src='/path/to/js')//- with hexo function url_forscript(type='text/javascript', src=url_for(theme.js) + '/ready.js') hexo 相关在 hexo 主题中使用 pug 时,可以通过使用 hexo 提供的全局变量 config , theme 来分别调用博客根目录下 _config.yml 文件中的参数以及主题根目录下 _config.yml 文件中的参数。 12345//- blog configp= config.description//- theme configp= theme.title 当然,pug 中可以直接使用 hexo 提供的其它全局变量及辅助函数,使用方法详见 hexo 的文档。 示例12345678910111213//- head.pughead meta(http-equiv='content-type', content='text/html; charset=utf-8') meta(content='width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0', name='viewport') meta(content='yes', name='apple-mobile-web-app-capable') meta(content='black-translucent', name='apple-mobile-web-app-status-bar-style') meta(content='telephone=no', name='format-detection') meta(name='description', content=config.description) block title link(rel='stylesheet', type='text/css', href=url_for(theme.css) + '/style.css' + '?v=' + theme.version) link(rel='Shortcut Icon', type='image/x-icon', href=url_for('favicon.png')) script(type='text/javascript', src='//cdn.bootcss.com/jquery/3.3.1/jquery.min.js') block more 12345678910111213141516//- base.pugdoctype htmlhtml(lang='en') include _partial/head.pug block more link(rel='stylesheet', type='text/css', href=url_for(theme.plugins) + '/prettify/doxy.css') script(type='text/javascript', src=url_for(theme.js) + '/ready.js' + '?v=' + theme.version, async) //- body body: #container.box .h-wrapper include _partial/nav-menu.pug // article content block content include _partial/footer.pug 其中: theme.* 为主题配置文件 _config.yml 中的参数 url_for 为 hexo 提供的用于查找资源路径的函数 总结pug 提供了 包含 ,继承 ,Mixin 等多种方式用于代码复用,语法简洁易懂,除了初学时需花费一些时间学习各种标点符号的含义外,其它倒也没有太大困难。 当然啦,pug 还有许多其它特性,但就我目前使用情况而言,以上这些便已足够。 参考 pugjs.org hexo.io/zh-cn/docs/ 原文出处 作者:litreily 链接:https://juejin.cn/post/6844903668383236104 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。","categories":[{"name":"学编程","slug":"学编程","permalink":"http://yiwangmeng.com/categories/%E5%AD%A6%E7%BC%96%E7%A8%8B/"}],"tags":[{"name":"博客建站","slug":"博客建站","permalink":"http://yiwangmeng.com/tags/%E5%8D%9A%E5%AE%A2%E5%BB%BA%E7%AB%99/"}]},{"title":"从零开始学aardio笔记:基础规范","slug":"aardio-notes-02","date":"2020-10-12T04:54:04.000Z","updated":"2020-10-12T09:54:04.000Z","comments":true,"path":"aardio-notes-02.html","link":"","permalink":"http://yiwangmeng.com/aardio-notes-02.html","excerpt":"","text":"前言这里的基础规范不包括所有的语法,只是作为一个初学者注意到的可能会混淆的概念,会有出错的细节做个记录,以及为今后养成一些固定格式习惯之用,各种语法规范请参见aardio帮助文档即可。 基本规范变量命名规则推荐用小驼峰命名法,即小写在前大写在后,如: 12var robotName = "QQ机器人"; 语句判别每行一句,以 ; 结尾,不以换行为判断。实际上 ; 不写也没关系,aardio会检查语句的完整性。为代码统一规范美观,建议语句结尾带上 ; 结尾,如: 1234if(mainForm){ mainForm.text = "测试"; mainForm.show();} 空格/空行使用 相关代码放在一起,不相关代码用一个空行间隔 赋值,比较等表达式符号两边各添加一个空格 () 内相关参数,条件等前后不留空格 校长的教程里有些是有空格,有些是不留空格的,自己统一下吧,如上面的代码段所示。 语法注意事项特殊符号 '' :与 "" 不同的是单引号支持转义,如 str = 'abc\\r\\n' ,而双引号内转义符会处理成普通字符 _ :下划线开头表示常量,值不可改变 :: :声明一个全局常量,如 ::str = "abc" .. :全局名字空间引用符,如 ..io.open(); # :取长运算符(单目运算符),如果对象是 null ,返回 0 ,如果对象是字符串返回字符串长度 ++ :一个加是运算符,两个加则是字符串连接符,如 str = abc ++ 123 ,则 str = abc123 === 或 !== :== 判断值相等时,0 和 false 是一样的, 而三个等号则是全等式运算符,表示强匹配,此时 null 和 0 false 是不一样的 其他事项 aardio 对大小写敏感,mainForm 和 mainform 是不同的两个对象,str = abc 和 stR = abc 是不一样的 除 aardio 核心库,外部库需要先 import 导入 定义一个库时,使用其他库名字空间时需全局引用:var out = ..fsys.createDir(outdir);","categories":[{"name":"学编程","slug":"学编程","permalink":"http://yiwangmeng.com/categories/%E5%AD%A6%E7%BC%96%E7%A8%8B/"}],"tags":[{"name":"aardio","slug":"aardio","permalink":"http://yiwangmeng.com/tags/aardio/"}]},{"title":"转:php源码随机输出某个目录下的图片API","slug":"php-image-api","date":"2020-09-19T15:10:23.000Z","updated":"2020-09-19T15:10:23.000Z","comments":true,"path":"php-image-api.html","link":"","permalink":"http://yiwangmeng.com/php-image-api.html","excerpt":"","text":"前言搞了一大批美女图,想给网友过过眼,写个php源码随机输出某一个目录下的图片,可用于随机图片API接口。 代码把下面的代码保存为 imgapi.php : 1234567<?phpheader('Content-type: image/jpg');$img_array = glob("./*.{gif,jpg,png}",GLOB_BRACE);$img = array_rand($img_array);$image = file_get_contents($img_array[$img]);echo $image;?> 保存就可以调用这个接口。 使用方法调用方式为:域名/imgapi.php,图片目录为 imaapi.php 同级目录。 也可以自定义图片的目录,把下面代码: 1$img_array = glob("./*.{gif,jpg,png}",GLOB_BRACE); 改为以下代码,img 是图片目录名,可以随意更改: 1$img_array = glob("./img/*.{gif,jpg,png}",GLOB_BRACE); 这样就可以调用 img 目录下的图片了。 原文链接","categories":[{"name":"学编程","slug":"学编程","permalink":"http://yiwangmeng.com/categories/%E5%AD%A6%E7%BC%96%E7%A8%8B/"}],"tags":[{"name":"混技能","slug":"混技能","permalink":"http://yiwangmeng.com/tags/%E6%B7%B7%E6%8A%80%E8%83%BD/"}]},{"title":"Git进行fork后与原仓库同步方法","slug":"git-sync-from-upstream-command","date":"2020-09-09T07:50:03.000Z","updated":"2020-09-09T07:50:03.000Z","comments":true,"path":"git-sync-from-upstream-command.html","link":"","permalink":"http://yiwangmeng.com/git-sync-from-upstream-command.html","excerpt":"","text":"前言在你 fork 一个仓库之后, 往往上游的仓库又更新了。但 Git 不会自动帮你把上游的仓库同步给你 fork 后的仓库,有时候自己的一些更改也需要保留……此时,就需要学会与上游仓库合并更改及同步。 方法最省事的办法可能是: 在你 fork 的仓库 setting 页翻到最下方,然后 delete 这个仓库 然后重新 fork 仓库,并 git clone 到你的本地 但在更多情况下,删掉自己fork的库,应该是你的最后选择,而不应该是首选。 可行的首选方法简单的说就是: fork 你要的仓库到自己账号下 git clone fork后的仓库到本地 打开 Git bash ,以下是需要输入的命令: git remote -v #查看远程状态 git remote add upstream https://github.com/OWNER/REPOSITORY.git #配置完建议再次查看状态确认是否配置成功 git fetch upstream #从上游仓库 fetch 分支和提交点,提交给本地 master,并会被存储在一个本地分支 upstream/master git checkout master #切换到本地主分支(如果不在的话) git merge upstream/master #把 upstream/master 分支合并到本地 master 上,这样就完成了同步,并且不会丢掉本地修改的内容。 git push origin master #这一步就把合并后的内容推送到fork后的仓库里了","categories":[{"name":"学编程","slug":"学编程","permalink":"http://yiwangmeng.com/categories/%E5%AD%A6%E7%BC%96%E7%A8%8B/"}],"tags":[{"name":"混技能","slug":"混技能","permalink":"http://yiwangmeng.com/tags/%E6%B7%B7%E6%8A%80%E8%83%BD/"},{"name":"shell","slug":"shell","permalink":"http://yiwangmeng.com/tags/shell/"}]},{"title":"Windows零售版转换成vol批量可激活版","slug":"windows-version-change-to-vol","date":"2020-07-08T07:48:19.000Z","updated":"2020-07-08T07:48:19.000Z","comments":true,"path":"windows-version-change-to-vol.html","link":"","permalink":"http://yiwangmeng.com/windows-version-change-to-vol.html","excerpt":"","text":"前言如果没有购买正版Windows,或者不想用电脑厂商出厂带的OEM版「一般是家庭版,有些功能没有」,重装后我们一般会找个KMS激活,但如果装的时候没选好版本,可能用KMS工具激活的时候会提示该系统非vl版,激活失败之类的。 解决如果装的系统不是 VL 版本,此时你也许会重新下载个 VL 版重装,这当然是可以的。 另外一方面,我们也不需要这么麻烦,因为系统镜像本身就大同小异,只是里面一两个配置不一样而已,我们只需要 用 DISM 命令将已经装好的系统更改为 VOL 版本,当然也可以用这个命令从 Home 升级为 Professional 。 确认已安装的版本在CMD或者Powershell中,用下面的命令可以知道自己当前已经安装的是什么版本: 1DISM /online /Get-CurrentEdition 运行结果是这样: 123456789101112131415Windows PowerShellCopyright (C) 2012 Microsoft Corporation. All rights reserved.PS C:\\Users\\Administrator> DISM /online /Get-CurrentEditionDeployment Image Servicing and Management toolVersion: 6.2.9200.22807Image Version: 6.2.9200.22807Current edition is:Current Edition : ServerStandardThe operation completed successfully. 以及可以升级到什么版本 1DISM /online /Get-TargetEditions 准备秘钥密钥可以网上搜索,找个自己已安装版本对应的密钥,可以到微软官网 Appendix A: KMS Client Setup Keys 去找个,因为反正目的都是为了KMS激活。 以自己vps里装的一个为例,通过上面的命令可知版本是 Windows Server 2012 Server Standard ,那么从上面的官网上可以找到可用密钥为:XC9B7-NBPP2-83J2H-RHMBY-92BT4 转换成VL版转换命令: 1DISM /online /Set-Edition:<edition ID> /ProductKey:XXXXX-XXXXX-XXXXX-XXXXX-XXXXX /AcceptEula Edition ID 就是前文得到的那个版本 ServerStandard,ProductKey 后面把序列号填上去就行,这个方法可以解决 slmgr /ipk 命令无法安装 VL 密钥的情况,也适用于 Standard 转 DataCenter 按实际情况组合完为: 1DISM /online /Set-Edition:ServerStandard /ProductKey:XC9B7-NBPP2-83J2H-RHMBY-92BT4 /AcceptEula 命令执行完会要求重启,按要求重启系统。 系统激活转换为 VL 版后,再去激活系统就简单多了,市面上几乎所有的工具都能一键激活,KMS工具激活就不提了,都在界面上,自行点点就激活完成了,不想用工具的可以用以下命令: 1234#设置kms服务器slmgr /skms kms.03k.org#自动激活slmgr /ato 参考文档 Windows Server 2012从Evaluation版转成正式版 KMS服务~一句命令激活windows/office","categories":[{"name":"玩系统","slug":"玩系统","permalink":"http://yiwangmeng.com/categories/%E7%8E%A9%E7%B3%BB%E7%BB%9F/"}],"tags":[{"name":"Windows","slug":"Windows","permalink":"http://yiwangmeng.com/tags/Windows/"}]},{"title":"解决“Peer fingerprint did not match”错误提示","slug":"php-error-peer-fingerprint-did-not-match","date":"2020-05-20T13:33:59.000Z","updated":"2020-05-20T13:33:59.000Z","comments":true,"path":"php-error-peer-fingerprint-did-not-match.html","link":"","permalink":"http://yiwangmeng.com/php-error-peer-fingerprint-did-not-match.html","excerpt":"","text":"前言有个PHP网站跑的好好的,闲来无事把宝塔面板里的软件升级了一把,系统里也update了一回。然后,发现网站功能不正常了,定时任务执行完成没有效果,线上生产环境,思来想去不知道哪里出错了,慌得一逼,还好最后解决得有惊无险! 现象用系统定时任务设置了个PHP任务,但任务结果迟迟不对,但 tail -f /var/log/cron 可见系统任务正常执行。 排查因为是线上环境,不敢冒然动手,只能一点点试探。因为升级过环境,所以也不可能把所有软件都想一遍,既然是PHP任务,那第一个想到的就是PHP程序出问题了。检查下来PHP程序功能也没什么问题,除了定时任务执行结果不对,索性手动运行了一把: 12# 先切到网站目录,然后执行php artisan schedule:run 结果显示: 1[Composer\\Downloader\\TransportException] Peer fingerprint did not match 这个错误Google一把,人家说是版本不匹配,再去看看自己安装的PHP版本,7.2.31 并没有错,但系统内用 php -v 却是 5.6.4 ,版本不符,这个版本并没有安装过,也不知道怎么来的,不知道是删库塔更新错误还是 yum update 的时候哪里带来的,总归知道原因了。 解决宝塔面板处理在宝塔面板上可以直接切换PHP命令行版本的功能:宝塔面板》网站》PHP命令行版本 ,点击选择你要的版本即可。 系统内处理如果没有删库塔上这个功能入口,也可以登录系统自行更改: 12#找到PHP程序位置whereis php 会返回PHP路径,一般都在 /usr/bin/php ,然后把这个入口链接到你安装的PHP实际路径即可,如删库塔安装的PHP位置为:/www/server/php/72/bin/php ,那么,执行以下命令: 1ln -sf /www/server/php/72/bin/php /usr/bin/php 软链接创建完成后,再次 php -v 检查版本应该就正确了,此时PHP任务执行功能正常,故障得以消除。","categories":[{"name":"做网站","slug":"做网站","permalink":"http://yiwangmeng.com/categories/%E5%81%9A%E7%BD%91%E7%AB%99/"}],"tags":[{"name":"博客建站","slug":"博客建站","permalink":"http://yiwangmeng.com/tags/%E5%8D%9A%E5%AE%A2%E5%BB%BA%E7%AB%99/"}]},{"title":"Hexo本地环境便携版使用简介","slug":"helloworld","date":"2019-12-31T16:00:00.000Z","updated":"2020-07-18T04:32:06.000Z","comments":true,"path":"helloworld.html","link":"","permalink":"http://yiwangmeng.com/helloworld.html","excerpt":"","text":"Hexo是一个快速、简洁且高效的博客框架,支持 Markdown 的绝大部分功能;具有超快生成速度,让数百个 MarkDown 源文件在几秒内快速渲染成全站 HTML 页面;还拥有各式各样的插件支持功能扩展。 但是就像很多教程里面写的那样,搭建 Hexo 本地环境,需要安装 Node.js、Git 以及使用 npm 进行安装和配置。这对于毫无经验的新手来说,是一个很大的挑战。同时,由于这些环境的存在,导致如果需要更换计算机的时候,重新安装配置一个新的Hexo环境,又得花费一些功夫。 所以呢,我们整合了一个 Hexo 便携版,来简化本地环境的部署,这就是我们的GoodHexo。 当你重装系统后,只要GoodHexo目录还在,直接接着用即可; 当你想换个电脑,只需要将GoodHexo目录移到新电脑上即可。甚至,你可以将这个文件夹装到U盘里,走哪插哪就行。 软件介绍那么所谓的便携版到底是什么?便携版就是将 Hexo 本地环境所需要的各种依赖环境的整合到一起,做成不需要安装的版本。 本便携版当前版本所包含的软件如下: 程序 版本 更新时间 Git 2.7.4 2020-7-18 Nodejs 12.16.2 2020-7-18 Npm 6.14.4 2020-7-18 Hexo 5.4.0 2021-3-27 Hexo-cli 4.2.0 2020-8-27 适用平台:Microsoft Windows关键词: GoodHexo,Hexo绿色版,Hexo便携版,Hexo配置,Hexo,U盘携带,GitHub Hexo 为了便携的需要,不能配置固定的环境变量,所以除此之外还有相应的批处理脚本,下文将详细介绍。 从零开始,一分钟使用 GoodHexo 写作环境说了这么多,我们这就开始教你如何在1分钟内,从零开始使用 GoodHexo 写作环境! 认识文件目录该订制的GoodHexo便携包基本上已经包含了Hexo博客所需的所有依赖,添加新主题新功能如果缺依赖请按照主题文档去安装更新即可。上面的压缩包下载解压后,其目录结构如下: 123456789101112131415161718192021222324252627GOODHEXO #便携包根目录| 1.新建文章.bat #要新建文章运行此批处理,填文件名建议别用中文| 2.本地测试.bat #写完文章可以启动本地服务端测试预览效果| 3.渲染并部署.bat #确定文章写完了,那么就运行此批处理发布| 启动命令行.bat #给有经验的人用,直达bash界面| 清理旧文件后部署.bat #部署也没报错,但博客就是没更新或者其他异常,那么用这个来部署试试| +---hexo #hexo程序工作目录| | .gitignore #指定Git提交时忽略的文件规则,一般也不要动| | db.json #程序自动生成的,不要动| | package.json #不要动| | _config.yml #hexo的主配置文件,定义标题,作者,导航菜单等| | | +---node_modules #hexo的依赖环境,不要动| +---scaffolds #文章/页面/草稿模板,不会就不要动| +---source #网站根目录| | README.md #本便携包示例文档| | \\---images #图片资源,网站路径为:/images| | | GoodHexo.png #图片引用地址为:/images/GoodHexo.png,也可以:../images/GoodHexo.png| | \\---_posts #你所有的文章都存在这个目录底下,通过批处理新建文章会自动建到这个目录下| | | hello-world.md #示例文章源文件,该MarkDown文件会被hexo渲染成HTML页发布| | | +---themes #主题存放目录| | \\---landscape #默认主题| | | \\---support #便携程序包,包含nodejs和Git环境,不要动 开始使用详细个性化设置拿到这个便携包,一些基础配置和基本的主题设置等院长都已经给你做好了,只需要自行对博客网站进行个性化详细设置即可。 个性化设置主要有两个地方: Hexo目录下的 _config.yml ,详见相应的参数注释,按要求填写,不想写就默认 主题目录下的 _config.yml ,主题不同设置项不同,所以请参考主题对应的文档进行修改设置 依次打开就能看个大概了,根据自己的需要及主题帮助完成自己要的个性化设置。更深入的个性化基本上需要在主题上做文章,请自行查看主题帮助,或者研究主题源代码即可完成。 修改的时候请注意格式,否则会导致错误而无法正常使用,比如 : 一定要是英文的且后面有内容的话至少要跟一个空格,配置内容跟后面的 # 注释之间至少要有一个空格,具体错误可以启动命令行输入 hexo s --debug 查看。 上图就是一个网站配置示例,配置项 : 后面如果要添加值至少带了一个空格,值带中文或者特殊符号建议用英文引号 '' 引起来,一行以 # 开头表示注释内容,配置项后面加空格再 # 则后面部分才是注释,如下面一个配置项: 1keywords: '一网盟,yiwangmeng,GoodHexo,hexo便携版' #网站SEO关键词,多个词用英文逗号区隔 写一篇自己的文章设置好后,就可以开始动手写自己的文章了。 step1.新建文章运行 1.新建文章.bat ,按提示填写文章名称,建议不要使用中文。 回车确认后会在 hexo 目录下的对应目录新建个 .md 文件,文件名以刚才输入的文章名称命名,注意提示的文件路径和新创建的文件名,如: hexo\\source\\_posts\\helloworld.md step2. 编辑文章MarkDown文件使用任意文本编辑器打开你刚新建的文章MarkDown源文件,按约定格式修改 Front-matter 中参数值,以及在 Front-matter 之后写你想写的内容即可,推荐编辑器首选用vscode或者Atom,关于编辑器以下文章可以阅读下: vscode-跨平台,绿色免费,基本接近完美的编辑器 MarkDown编辑器推荐这篇文章 typora - 所见即所得MarkDown编辑器,推荐小白用这个 基于Moeditor修改集成Hexo功能的编辑器 如果不依赖MarkDown编辑器,那么你需要掌握基本的MarkDown语法,然后就可以用任意文本编辑器「当然,Windows系统自带的记事本还是不推荐用」,按MarkDown语法写文档了。MarkDown语法可以参考 这个 Markdown 教程。 需要额外注意的是:Hexo对MarkDown文档头有规范,就是在文档最开始两个 --- 中间的那部分,官方称之为 Front-matter 123456789101112131415---title: 'Hexo,从此开始...' #文章标题,新建文章的时候填的会自动写到这里date: 2018-1-12 17:19:27 #文章创建时间categories: 搞软件 #分类,也可以如下一行那种换行后写分类tags: #标签 - 晒酷软 #这是个标签 - 做网站 #这是另一个标签toc: true #是否显示目录,false不显示,true显示,需要主题支持top: #填数字,值越大的文章在首页就越置顶,本包已集成comments: true #是否允许评论,需要主题支持keywords: '' #文章关键词,需要主题支持description: '文章摘要,可以是一大段,可以换行,用英文引号括起来' #不填则根据主题设计截取对应字数---上面部分是规定的头部信息,这行开始就是文章内容了... 对于文章来说,以上 Front-matter 参数除了 title: 都不是必须的,请根据自己的需求填写。 注意:每一个参数的 : 或者 - 后,都需要至少留一个空格,如果不填值就无所谓,或者将参数行删除都行,就是不能不留空格直接写,否则会报错。 如果参数值中间涉及特殊字符或者空格等,请使用英文的单引号 '' 将你的内容括起来,就如上面的示例一样。 更多 Front-matter 参数详见官方文档:https://hexo.io/zh-cn/docs/front-matter.html 文章参数设置完后,就可以在 --- 下一行写自己想写的任何内容了,以下都属于你文章的内容。 step3.渲染并发布文章写好保存,那就运行 3.渲染并部署.bat ,该批处理会将你的MarkDown源文件套用主题模板渲染成HTML静态页,并把静态页部署到网站空间,最后提示 deploy done:git 就表示已部署完成,要不了两分钟,访问你的网站地址就能看到效果了。 以上步骤请仔细阅读,再写新文章,重复以上步骤即可。 文章增/删/改 增:也就是新建文章,请按前一章第1、2、3步执行 删:删除一篇文章、页面或图片资源等,只需要将MarkDown等源文件删除,然后执行渲染并发布即可 改:也就是前一章的第2、3步 疑难杂症:有时候因为缓存或者一些莫名其妙的未知问题,可以尝试运行 清理旧文件后部署.bat 实际上任何增删改都需要重新渲染发布,等线上缓存更新完了才能在外网看到更改后的效果 新手在使用过程中可能会遇到一些问题,请参考我们整理的:GoodHexo使用常见问题及解决办法。 进阶如果你喜欢折腾,Hexo进阶部署使用可以参考Hexo博客Git-VPS部署完整记录。 使用过程中如需帮助,欢迎关注微信公众号,淘宝店,我的博客或者加入我们的交流群。 备注 本文所有权归 一网盟 所有,原文在此; 本便携版由 一网盟 维护并提供技术支持;","categories":[{"name":"做网站","slug":"做网站","permalink":"http://yiwangmeng.com/categories/%E5%81%9A%E7%BD%91%E7%AB%99/"}],"tags":[{"name":"Hexo","slug":"Hexo","permalink":"http://yiwangmeng.com/tags/Hexo/"},{"name":"博客建站","slug":"博客建站","permalink":"http://yiwangmeng.com/tags/%E5%8D%9A%E5%AE%A2%E5%BB%BA%E7%AB%99/"}]}],"categories":[{"name":"学编程","slug":"学编程","permalink":"http://yiwangmeng.com/categories/%E5%AD%A6%E7%BC%96%E7%A8%8B/"},{"name":"玩系统","slug":"玩系统","permalink":"http://yiwangmeng.com/categories/%E7%8E%A9%E7%B3%BB%E7%BB%9F/"},{"name":"做网站","slug":"做网站","permalink":"http://yiwangmeng.com/categories/%E5%81%9A%E7%BD%91%E7%AB%99/"}],"tags":[{"name":"博客建站","slug":"博客建站","permalink":"http://yiwangmeng.com/tags/%E5%8D%9A%E5%AE%A2%E5%BB%BA%E7%AB%99/"},{"name":"aardio","slug":"aardio","permalink":"http://yiwangmeng.com/tags/aardio/"},{"name":"混技能","slug":"混技能","permalink":"http://yiwangmeng.com/tags/%E6%B7%B7%E6%8A%80%E8%83%BD/"},{"name":"shell","slug":"shell","permalink":"http://yiwangmeng.com/tags/shell/"},{"name":"Windows","slug":"Windows","permalink":"http://yiwangmeng.com/tags/Windows/"},{"name":"Hexo","slug":"Hexo","permalink":"http://yiwangmeng.com/tags/Hexo/"}]}