写在第 100 篇博文之际

想写博客的念头已经很久了,在年初的春节终于有时间折腾出了自己的博客。一开始,仅仅是想用博客来记录自己学习中遇到的问题,作为备忘;后来上课了发现,与其将自己课上做的笔记写在 OneNote 上,还不如直接写在博客上,也许能帮助到一些同学呢;再到后来上数学课,就索性将数学公式、笔记也写在博客上(写 LaTeX 还是件很蛋疼的事);到现在,我将自己做的一些小项目也记录下来,也许未来也会写点琐碎的感悟,也不一定呢。 写博客是件很美妙的事情,一方面,每次的记录其实并没有那么愉快,虽然 Markdown 已经足够简单不用担心排版的问题,但每天总得多花一两个小时总结也有点繁琐(不过慢慢就习惯了这种记录方式),另一方面,当我第一次收到陌生朋友评论的感谢时,我才发现原来我的博客也有人看呀,成就感满满。于是我开始在网站中加入百度统计和 Google Analysis,时不时看看今天有没有人看我的博客,也算是激励我不断更新的动力吧。 很惭愧的是,自己能力有限,多数博文也仅仅是上课的笔记和总结,并没有太多“干货”。好在自己还算勤快,半年就达到了自己定的一年目标(完成 100 篇博文)。这半年来其实自己的收获是巨大的,虽然每天都学的很累,但是总算是有种 feeling –终于在 cs 上入门了。转专业这一年来,拒绝了所有的活动与比赛,静下心来搞学习,总算是有所收获。一年的时间说长也长,说短也短,原专业的朋友保研的保研,考研的考研,出国的出国。总有人半开玩笑的问我,“现在你看见他们都保研清北啦,你后不后悔”。我只是笑笑,当然不后悔了。但羡慕是有点羡慕的,毕竟是更好的平台,而自己选择了竞争压力太很多的行业,很难再像以前那样“游刃有余”。好在自己是个喜欢折腾且异常固执的人,倒也不觉得有什么。 最近博客更新得不勤,主要是因为放假了,以及自己在做两个小项目、学英语,没太多东西可以记录。经过一年的“闭关”,自己也觉得是时候参加一些比赛来实践实践(没点奖状怎么丰富自己简历啊哭),找了两三个自己认为还挺有挑战的比赛,从 9 月份开始玩玩。 当然,目前最重要的事情还是考好雅思……

August 8, 2018 · 1 min · Scott Du

Hexo 博文加密

很多时候当我们写了一篇博客,但并不想所有人能够访问它。对于WordPress这很容易做到,但是对于hexo,由于是静态网页,并不能做到完全的加密。 在GitHub上发现了有个人做了一个加密的插件,还挺好用,推荐给大家。 安装 在你的hexo根目录的package.json文件夹中添加: “hexo-blog-encrypt”: “2.0.*” 然后在命令行中输入: npm install 这样这个插件就安装好了。 找到根目录下的_config.yml文件,添加如下: 1 2 3 4 # Security ## encrypt: enable: true 这样就可以使用插件了。 使用 在你要加密的文章头部写入password,例如: 1 2 3 4 5 6 7 --- title: Hello World date: 2016-03-30 21:18:02 password: abc123 abstract: Welcome to my blog, enter password to read. message: Welcome to my blog, enter password to read. --- 这样就可以需要输入密码访问了。...

July 11, 2018 · 5 min · Scott Du

Hexo 多设备同步与版本控制实现

环境要求 已经能正常使用和deploy的hexo仓库,一个GitHub账号,对Git使用较为熟悉。 使用网盘同步 最简单的方式其实就是直接把你博客的文件夹保存在网盘中,可自动实现同步。推荐使用OneDrive或者Google Drive。当需要使用新设备写作时,可直接复制这个文件夹,然后安装node.js和hexo即可。 这种方法的好处当然是简单直观,但无法做到版本同步,作为计算机的学生,怎么能不使用GitHub进行同步呢~ 使用GitHub进行同步 使用分支搭建博客 其实,Hexo生成的网站文件中有.gitignore文件,因此它的本意也是想我们将Hexo生成的网站文件存放到GitHub上进行管理。 博客搭建流程: 创建仓库,youraccount.github.io 创建两个分支:master 与 hexo 设置hexo为默认分支(因为我们只需要手动管理这个分支上的Hexo网站文件,master分支为hexo deploy自动生成和管理) 使用git clone git@github.com:youraccount/youraccount.github.io.git拷贝仓库 在本地youraccount.github.io文件夹下通过Git bash依次执行npm install hexo、hexo init、npm install 和 npm install hexo-deployer-git(此时当前分支应显示为hexo) 修改_config.yml中的deploy参数,分支应为master 依次执行git add .、git commit -m “…”、git push origin hexo提交网站相关的文件 执行hexo generate -d生成网站并部署到GitHub上 这样一来,在GitHub上的youraccount.github.io仓库就有两个分支,一个hexo分支用来存放网站的原始文件,一个master分支用来存放生成的静态网页 在新设备中安装node.js和Git 无需多说,直接点击链接安装:node.js,Git。 给新设备添加SSH KEYS 在Git Bash中输入: ssh-keygen -t rsa -C “你的邮箱地址”...

February 21, 2018 · 1 min · Scott Du

Hexo 下 LaTeX 无法显示的解决方案

配置信息 这是我的hexo版本和package信息(与LaTeX相关): 1 2 3 "hexo": "^3.5.0", "hexo-math": "^3.0.4", "hexo-renderer-kramed": "^0.1.4", 安装插件 首先我们需要安装Mathjax插件 npm install hexo-math –save 更换Hexo的markdown渲染引擎,hexo-renderer-kramed引擎是在默认的渲染引擎hexo-renderer-marked的基础上修改了一些bug,两者比较接近,也比较轻量级。 npm uninstall hexo-renderer-marked –save npm install hexo-renderer-kramed –save 解决语义冲突 由于LaTeX与markdown语法有语义冲突,在markdown中,斜体和加粗可以用*或者_表示,在这里我们修改变量,将_用于LaTeX,而使用*表示markdown中的斜体和加粗。 在博客根目录下,进入node_modules\kramed\lib\rules\inline.js,把第11行的escape变量的值做相应的修改: 1 2 escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, escape: /^\\([`*\[\]()#$+\-.!_>])/, 这一步是在原基础上取消了对,{,}的转义(escape)。 同时把第20行的em变量也要做相应的修改: 1 2 // em: /^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/, 更改配置文件 这里是最重要的一步,我找了好久才在这个网站中找到适用的解决办法。 进入到主题目录,找到_config.yml配置问题,把mathjax默认的false修改为true,并更换cdn的url,具体如下: 1 2 3 4 5 6 # MathJax Support mathjax: enable: true per_page: true #cdn: //cdn....

February 8, 2018 · 1 min · Scott Du

Hexo 中 scaffolds 创建模板问题

由于经常要写同一类型的文章,懒得每篇文章都添加同样的tags和categories,因此可使用scaffolds创建模板,每次只需要hexo new layout "标题"即可生成相同样式的文章。 但近期使用时发现一些问题,如下图所示,我创建了一个名为Hexo的模板,并正确放到scaffolds中: 然后再git中输入: 到这一步都没有任何问题,但当我们查看文章时,发现并没有生成我们想要的tags和categories,而是多了一个layout,这不是我们想要的。 后来发现,在scaffolds中创建模板时,模板标题不能为大写,中文也可以,但就是不能大写,不知道为什么,先占个坑,望有同样问题的同学能看见这篇文章。

February 8, 2018 · 1 min · Scott Du