Lolipop's Studio.

Lolipop's Studio.

how about groping lights through young ages

这位客官,要来一张我珍藏许久的图片吗

笔者自高中到现在,游走于 Pixiv 若干载,不慎收藏了许多名家雅作。

独乐乐不如众乐乐!笔者想做一个 web 页面来随机访问我的收藏,不过在此之前,可以先实现服务端上的内容。再之后做网页时,不过是简单的读取数据库罢了!

最初,笔者以为得将我的库存全部放到服务器上项目中去,然后随机访问其中的图片实现功能,但这样做很难得同步,遂搁置。不过,笔者在最近发现有一个 Pixiv 图片代理网站 可以快速下载到图片,大喜,于是开始了这个小工程。

请求需包含 Referer

实现此功能分为两个阶段:一,为本地的图片生成数据库索引条目。二,开发 Telegram Bot 接口,随机从数据库索引中获取一张图片转发给聊天。

为本地的 Pixiv 图片建立索引

从零开始使用 Telegram Bot

本文旨在基于 Koa 从零开始搭建一个简单的 Telegram Bot 应用服务,帮助笔者更好地将爱传递给 Telegram!

本文假设您已对 Node.js 和 Koa 有一定的了解。

初始化 Koa 项目

Koa 是为 Node.js 设计的下一代 Web 框架,其幕后开发者主要来自知名的 Express 团队。

尽管使用 koa-generator 来初始化 Koa 项目是一个不错的选择,但笔者还是喜欢从头开始的感觉。

那么首先,新建文件夹并进入,使用 npm init 初始化 package.json

把自己的简历做成 Web 页面

去年投简历的时候,在 Github 上找了个开源的,星星很多的仓库 best-resume-ever 来制作自己的简历。其中的 Creative 模板我觉得很喜欢,就用它制作了我人生中的第一份找工作用的简历:

my first resume

然后到了现在,到了秋招真正找工作走向社会的季节了,又该制作自己的简历了。一年的时光给自己的人生又增添了几分色彩,原先简历模板已然不够用了。正巧,这个仓库由 Vue 编写,可以用自己已有的知识对简历做一些改造手术。

改造简历

举四个改造的例子好了。

添加 Chip 纸片

使用 jsDelivr 加速 Github 仓库搭建自己的图床服务

起因

今天突然想去搞个图床,使用 CDN 加速图片资源。因为博客放在小水管服务器上,直接用这个服务器向用户传输图片资源对带宽有很大影响。

遂上网搜索有无免费图床的服务,看到有人提起,便出现了此文的主题:使用 jsDelivr 加速 Github 仓库资源,用作图床使用。

在国内,直接使用 Github 链接来加载图片是很慢的,甚至于加载不出来;但访问 jsDelivr 速度较快。通过 jsDelivr 来加速 Github 上的图片资源,即可以实现我们想要的图床服务。

使用其它的可以加速 Github 资源的 CDN 服务来替换 jsDelivr 也可以;这应该算是目前对于个人开发者来说,最简单且经济的方式了。

创建图床仓库

使用 EditorConfig 和 Prettier 优雅地配置 VSCode 代码格式化

笔者想要给自己翻译的设计模式教程添加多编程语言支持。最初,只选择了 JavaScript 作为示例语言,看到 Github 上有大量其它语言的实现,便想要加上这些语言,集成为一个大一统的中文翻译项目。

部署的网页基于 VuePress,最简单的方式就是将源文档复制几份,然后逐段粘贴为别人的代码即可。偶然发现有 VuePress 本身提供了一个导入代码段的功能,可以引入本地文件中的代码段。几乎没有多想,便决定使用这个功能,这样可以将代码段放入不同的文件中,很大程度上方便了后续的管理和拓展。

现在,一个项目里出现了多种不同的编程语言的代码,不考虑它们的代码质量问题(如果还考虑代码质量问题,可以参考笔者的这一篇博客),只在乎它们的格式规范。那么,如何优雅地在 VSCode 上格式化这些代码呢?

编写时 EditorConfig

EditorConfig 有助于为跨各种编辑器或 IDE 而处理同一项目的多个开发人员保持一致的编码风格。

VSCode 并没有内置对 EditorConfig 的支持,需要在插件市场中手动下载其插件

更换持续集成工具,从 Travis 到 Github Actions

我真傻,真的,单单受文档的推荐就选择了 Travis 作为部分项目的持续集成工具,没有料到它早已于 2020 年 12 月更换了免费政策,不再为开源项目提供免费的用于持续集成使用的 Credits 了。当赠送的 10000 个点数用完,就需要付费才能进行构建了。

当然,作为经济驱动的公司,近些天来又受 Github Actions 等其它持续集成工具打压了盈利空间,抛弃开源用户选择转型做起了商人事业也并非不可理解。感谢它曾为开发者提供的便利,不过作为一个佛系开发者,终于还是需要转投到别的免费工具上去了——Gihub Actions。

编写新的 workflow.yml

那么首先,我们就需要将为 Travis 编写的命名为 .travis.yml 的配置文件,翻译成 Github Actions 能识别的 workflow.yml 配置文件。

献给中文读者的设计模式教程这个项目为例,原有的 .travis.yml 内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
language: node_js
node_js:
- lts/*
branches:
only:
- main
install:
- cd vuepress
- yarn install
script:
- yarn build
deploy:
provider: pages
skip_cleanup: true
local_dir: vuepress/docs/.vuepress/dist
github_token: $CI_DEPLOY_TOKEN
keep_history: true
on:
branch: main
在浏览器中输入 URL 到显示网页,背后发生了什么

最近学习前端基础知识的时候,看到了这个问题和一个回答,非常生动有趣。遂抱着梳理的想法,将整个过程描述出来。

现在,假设您打开了浏览器,想要访问我的个人博客,您会在地址栏输入 lolipopj.github.io 这个 URL 然后敲下回车键。

从敲下回车键到最终顺利在浏览器显示我博客的主页,这个过程的背后发生了什么呢?

检查 URL 格式

别急,在正式驶入互联网的快车道之前,浏览器会首先检查输入的 URL 的格式是否正确。

例如,假如您输入的是 lolipop j.github.io,或是 lolipopj.gith$ub.io,浏览器将会判断它们为非 URL。在这种情况下,浏览器通常会将我们错误输入的 URL 作为搜索引擎的输入关键字,最终跳转到搜索结果界面。

为 Archer 主题更换字体

看腻了原先的字体,亦或是想满足独树一帜的设计欲望?不妨更换一下博客的字体吧!本文将基于 Hexo 和主题 Hexo-Theme-Archer 展示如何更换博客的中文字体。

引入字体文件

这里提供两种引入的思路,一种是 CDN 引入,一种是本地引入。建议通过 CDN 的方式引入,可以大大提高加载效率。

引入 CDN 字体文件

以更换字体为思源黑体(Google 字体上叫 Noto Sans,Adobe 版本叫 Source Han Sans)为例,考虑到中文站点面向的读者在国内,无法直接下载思源黑体这款 Google 字体,因此考虑通过 CDN 的方式引入它。据笔者测试,目前有这四个 CDN 站点可以提供稳定的服务:

使用基于 Docker 的 Nginx 部署静态网页项目

现在,我已经安装了 Docker,并拉取了 Nginx 的镜像。除此之外,我也购买了域名,完成了备案,并且为域名配置了 SSL。一切准备就绪,那么我该怎么将我的静态网页项目在 Linux 主机上通过 Nginx 部署,最终实现域名访问呢?

本文以部署我的个人博客页面为例,介绍如何使用基于 Docker 的 Nginx 部署静态网页项目。

准备静态网页项目

为了更方便管理网页项目,可以在主机根目录下新建一个目录,例如 www

1
2
3
sudo -i # 切换为管理员用户
cd /
mkdir www

现在,我已经有了一个完整的静态网页项目——我的个人博客。我的个人博客基于 Hexo,其中代码放在 source 分支,生成的静态网页文件放在 master 分支。首先通过 git 命令将静态网页文件克隆下来:

在 Euler 系统上离线安装 MySQL 5.7

查看系统 OS 及架构

以 Euler 系统为例,在终端上输入命令查看,可以通过 rpm -qa | grep euleros-release 命令找到 rpm 包,再通过 rpm -qi ${包名} 查看系统 OS 及架构信息:

1
2
3
4
5
6
7
8
[[email protected] ~]# rpm -qa | grep euleros-release
euleros-release-2.0SP5-13.eulerosv2r7.x86_64
[[email protected] ~]# rpm -qi euleros-release-2.0SP5-13.eulerosv2r7.x86_64
Name : euleros-release
Version : 2.0SP5
Release : 13.eulerosv2r7
Architecture: x86_64
......

当然,也可以使用通用的 uname -a 命令。

当前系统为 Euler 2.0 (SP5),处理器架构为 x86_64。

下载 MySQL

avatar
Lolipop
Make them happen.
FRIENDS
Bill Chen