旧的一年再次过去了,2020 年已经没了。不过本篇肯定不能称之为『照例』了,毕竟博客写作什么的,起码也是停更几年了。不过现在,在决定再次开始写写东西并把新博客搭建完毕后,还是写一下总结罢。
# 总结
今天是 2021 年 1 月 6 日 星期三 天气,算阴吧。
一直坐在公司,对外面也没什么感觉。
不觉一年又过去了,前半年疫情,后半年基本上在加班。前几天元旦都是加班加过来的。本来这篇总结打算元旦写一写,一直拖到现在。
当然,虽然忙,期间也还是研究了些东西的,毕竟虽然一直加班,偶尔也是有 “加剩” 的时间的。
虽然都是从项目相关开始延伸出来的,比如 CrySimpleNet,一个简单的网络框架、文件对比对比工具等等。以后有时间了或许会写一写相关文章,嗯... 大概。
本博客托管于 Gitpages,使用 jekyll 构建。也是在这次 2020 年快过去,有点时间之后,一点点搞出来的。
例如解决这个博客模板的编译错误、修改博客模板适用自己等等。反正到现在可以使用为止,还是着实折腾了一番。算是复习了一番 css、js、jquery、到处查 bootstrap 用法等等。
最终虽然不算很完美,不过对于个人来说倒也足够了,后续就可以写点东西了。
另外,还有一堆几年前托管在 Coding Page 上的博文,也被我挪了过来,那时候使用 Hexo 搞的,不过所幸归根结底都是 markdown 格式的文章,所以移植过来倒也费不了太大功夫。
毕竟也是段历史了。后续添加了文章『多少天 / 月 / 年』的计算显示后,才惊觉最晚的博文,都已经是『6 年前』的了?真是时间如水,不经意、还是无知觉中,就完了?
莫名地甚至有点无所实感.....
春节之后就是周年庆了,据说会更忙,希望在之后能正常点吧。这样才能有足够的时间提升自己,研究一些新技术之类,而非变成一个无情的拼图仔。
# 关于新博客
# 开始
说到这个,之前托管到 Coding 的 Hexo 搞的博客,多年未曾更新了,后续更是随着 Coding 托管静态页面政策不断更新,甚至直接给我关闭了。
关闭就关闭,索性就不再关注了。
最近偶然之间,听闻 GitPages,因此生出一些兴趣,又捡了起来。
当然,GitPages 早在曾经弄 Coding 托管 Blog,Hexo 作框架的时候就已了解,不过当时觉着毕竟属于国外,太慢,便也不喜欢。
现在看来,果然还是国外大牌的稳定,国内用过的 Coding、七牛云,如今想要使用,都是越渐麻烦。
所以这次连图片都直接放在 Git 上了,想使用 jsdeliver 加个速罢。
关于 jsdeliver 加速图片,是参考这个博文:使用 jsDelivr 免费加速 GitHub Pages 博客的静态资源(二)
PS:刚开始搭 GitPages 其实还想用这个主题来着,后续发现该主题的源主题后,个人觉得源主题 Yummy Jekyll Theme 好看一点,于是就拉了 Yummy-Jekyll 来修改。
# 问题
可惜 Yummy-Jekyll 主题的作者好几年都不再维护了,因此拉下来得解决一些问题。顺便升级了各个插件,比如 Bootstraps 改成了 Bootstraps4 版本,又修改了一些因为升级插件导致排版出现的问题。
后续还想把主题所用的 octicon 替换成最新的 jekyll-octicons,结果全都替换之后,本地倒没问题,上传 Git 就炸了。
而且收到的编译错误邮件只有这么些内容:
The page build failed for the
main
branch with the following error:
The tag
octicon
on line 4 in_includes/header.html
is not a recognized Liquid tag. For more information, see https://docs.github.com/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites#unknown-tag-error.
这就非常难以查错,折腾良久都无果。
最后使用 还原初始、增量上传的笨办法,一个个对比查找,终于定位到 jekyll-octicons 的问题了:
``` liquid {% for %} {% octicon circle %} {% endfor %} ```比如这种使用方式,在 liquid 模板的 for 循环中是会出问题的!
虽然不知道为什么本地可以运行,GItPages 的服务器不行,但的确是这个问题没错了。而且查看编译后的页面,可以发现 jekyll-octicons 会被编译成一堆重复 class 诸如 “class="octicon circle octicon circle octicon circle ......"” 的格式。
看着都极不正常。
最初还是想修复一下,看有没有解决之法。毕竟使用 jekyll-octicons 一不用在自己项目额外放东西,二不需要作其他引用,应当是编译的时候便已经生成了相应内容了。
# 结束
不过,估摸着是使用的人太少,亦或者是太偏门,反正是没找到几个相关信息。
最终索性也不管这些第三方的 icon 插件了,直接自己写了个 js 代码,用以动态替换指定标记为 svg 图片。
原理很简单,在文档加载完毕后,搜索
<span id="octicon-mark-github"> |
这种代码,并将其替换为相应标记的图片,甚至图片内容直接写在 js 文件中,用什么 icon 添加加什么 icon。
代码如下:
``` js /************************************************** * SvgIconHolder.js * 本来打算是使用jekyll-octicons的,结果发现有bug,特别是在liquid for语句 {% for %} 中使用,GitPage直接build error,而且是没有提示的那种 * 几经搜索,依然无果。 * 因此自己写了个折中方法,使用js动态替换 * octiconsDic 为key与对应对应的svg数据 * author:CWHISME * git:https://github.com/CWHISME * 2020.12.28 * */ var octiconsDic = { } $(document).ready(function () { for (var key in octiconsDic) { var target = $("span#" + key); if (target == null) continue; var defaultWidth = defaultHeight = 16; target.each(function () { var val = $(this); var width = val.attr("width"); var height = val.attr("height"); var style = val.attr("style"); if (width == null) width = defaultWidth; if (height == null) height = defaultHeight; if (style == null) style = ""; var resultHtml = ''); val.replaceWith(resultHtml); }); } }); ```另外,还加了一些其他古怪效果,比如 404、右键单击图片加彩蛋,嗯.. 等?