迁移博客到 Notion
type
Post
status
Published
date
Apr 10, 2023
slug
migrate-blog-to-notion
summary
博客迁移记录
category
技术分享
tags
Notion
创建时间
Apr 9, 2023 06:39 PM
更新时间
Jul 10, 2023 01:15 PM
password
icon

Why Notion ?

这是我第三次进行博客的迁移了!
原本的博客是基于语雀 云端书写 + 语雀 webhook + 自建Node API服务 + yuqe-hexo-with-cdn + Hexo + Github Actions 持续集成部署到腾讯云COS静态网站上。
现在是基于 Notion + NotionNext 持续集成部署到 Vercel 上。
本人接触Notion有一段时间了,但是一直没怎么用起来,原因有三
  • 当时以为没有中文
  • 语雀的写作舒适感要更好一点
  • 还没感受到Notion的强大
在用了2年时间语雀之后,语雀的产品策略越来越离谱,各种收费割韭菜。再加上之前一段时间开发 Elog 对接语雀和 Notion 的 Api 时,发现 Notion 原来这么好用。
  • Notion 的 Properties 天然对Api很友好。再也不用在语雀的文章头部手动添加 Front-Matter。
  • Notion 的筛选和排序对于统一分类管理文章很方便
🏬 Github Actions持续集成 Docker构建并部署Node项目到云服务器
type
Post
status
Published
date
Jul 16, 2022
slug
ovugli
summary
本文介绍了如何使用 Github Actions 持续集成 Docker 构建并部署 Node 项目到云服务器。具体流程包括搭建 Node 服务、开通腾讯云容器镜像服务、配置 Github Actions、编写 workflows 流程、连接云服务器、配置 DockerFile 等。最终实现推送代码到 master 分支自动部署项目。
category
技术分享
tags
Docker
CI/CD
Node
Github Actions
创建时间
Apr 7, 2023 07:15 PM
更新时间
May 31, 2023 04:23 PM
password
icon

引言

在之前的文章语雀云端写作 Hexo+Github Actions+COS 持续集成 中,语雀webhook触发构建的流程如下:
notion image
而当时腾讯云函数对个人使用还是在一定条件下免费的,本着能白嫖就白嫖的心态就用它做中转服务调用了。结果从上个月开始,腾讯云函数涨价了,而且费用也不便宜,我看了下账单,一个月差不多要快 10 块钱了,这我可忍不了。 所以就打算自己搭建一个node服务,自己调用Github ActionsAPI触发构建。流程如下:
notion image

部署流程

notion image

搭建 Node 服务

搭建记录请看Midway 项目搭建

开通腾讯云容器镜像服务(可选)

目前腾讯云容器镜像服务对个人还是免费的,我就先用这个,不免费了再说。也可以直接推送到Docker Hub
🏢 利用github actions自动化发布npm
type
Post
status
Published
date
Jun 23, 2022
slug
qzmpp5
summary
本文介绍了如何使用Github Actions自动化发布npm包,以及如何打造一个同时导出cjs和esm的npm包。文章详细介绍了配置文件的目录结构和关键参数,以及自动化发布的具体步骤。
category
技术分享
tags
Github Actions
Node
创建时间
Apr 7, 2023 07:15 PM
更新时间
May 31, 2023 04:23 PM
password
icon

引言

这篇文章我其实最想解决的是【如何简单快速打造一个能同时导出cjsesmnpm包】。在看了网上的各种教程,都没我想要的。要么就是利用rollup来构建,但是配置问题和兼容性问题又很棘手。最后是在看了typedi的代码仓库,发现很适合我,就借鉴过来了。 因为我的npm包是在node端使用的,所以只需要cjs和 esm类型的包就行,而ts-node就刚刚好能满足我的需求,所以我也没有使用其他构建工具。

配置

目录

项目关键文件如下:
node-agile-client |--.github | |--workflows | | |--cd.yml |--build | |--cjs | | |--index.js | |--esm5 | | |--index.js | |--types | | |--index.d.ts | |--package.json |--src | |--index.ts |--package.json |--tsconfig.json |--tsconfig.esm5.json |--tsconfig.cjs.json |--tsconfig.types.json
  • .github:github actions 配置文件
  • build:文件夹是打包后的产物,也是发不到 npm 上的文件夹,仓库 src 的文件是不会上传到 npm 的
    • cjs:CommonJS 模块的代码
    • esm5:ES Modules 模块的代码
    • types:类型声明文件
🎇 为开源社区做贡献-开发AgileConfig的NodeJS客户端:node-agile-client
type
Post
status
Published
date
Apr 28, 2022
slug
wqx8a7
summary
该文档介绍了如何使用node-agile-client为开源社区做贡献,开发AgileConfig的NodeJS客户端。该客户端包括了异步获取agile配置、从缓存中获取agile配置、从服务端获取配置并写入缓存、同步获取Agile配置等功能。通过该客户端,可以轻松获取到Agile配置。
category
技术分享
tags
Node
创建时间
Apr 7, 2023 07:15 PM
更新时间
May 31, 2023 04:23 PM
password
icon

引言

其实一开始没打算要搞这玩意儿的,事情的起因还得从我同事开始说起。 同事利用空余时间,开发了一款表情包小程序和 App,里面有各种表情包可以下载,挺有意思,我也推荐了其他朋友使用。
然后我就琢磨着也搞个什么玩玩,前几天想到了一个点子,准备着手开发Node服务端时,想到有一些连接参数、可配置参数、账号密码什么的我又不想写死在代码里。因为公司用的是Apollo,一些可配置的参数是放在Apollo来管理的。再加上我问了下我同事,他的项目就是把这些东西写死在代码里的,他也觉得如果有一个配置中心来管理这些的话会方便很多。
但是Apollo过于复杂了,对于我这种小项目是有点过了,于是在Github搜索一圈之后,偶然发现了AgileConfig这个轻量级的配置中心,但可惜的是只有C#的客户端,其他语言的客户端都没有。于是我就抱着试一试的想法加了这个项目的 QQ 群,果然还没有人开发nodejs的客户端。 于是我的兴趣就来了,由于我以前有Java语言的基础,所以C#的代码勉强能读懂,所以结合着C#的客户端和与群主的交流,终于开发出了一个相对稳定的nodejs客户端:node-agile-client
就此分享下我的开发过程和源码逻辑。

开始

配置中心听起来很高大上,其实说白了就是一个在线的数据库,客户端可以通过http请求去获取某个应用在某个环境下的JSON配置。所以我要做的就是通过http请求拿数据就完事,就是如此简单。
当然配置中心最核心的不只是能分应用分环境地存储数据,高可用也是其必不可少的能力。所以配置中心一般都是多节点分布式部署,客户端的代码大部分代码逻辑也是围绕着高可用去实现。
AgileConfig服务端除了向外暴露获取配置的http接口,还提供了websocket长链接机制,当配置中心发生配置变更时会发送消息告诉客户端。

基础工作原理流程图

于是我就构思了node-agile-client的基础工作原理流程图:
📅 程序员必备——Mac效率工具Alfred Workflows配置
type
Post
status
Published
date
Apr 19, 2022
slug
rm057k
summary
Alfred YYDS
category
技术分享
tags
Alfred
效率工具
创建时间
Apr 7, 2023 07:15 PM
更新时间
Apr 10, 2023 05:04 AM
password
icon

引言

最近发现Alfred简直不要太好用,快速打开网址功能(Web Search)在工作中使用起来行云流水,再也不用去一堆标签中寻找常用的网址。
notion image
但是在项目开发过程中,经常需要打开或运行各种项目,所以需要经常使iTerm或者IDE进入到各种项目文件夹中。在VSCode中,大家经常会使用code命令打开项目,再配合环境变量的别名设置,使用起来很方便。但是!我是忠诚的WebStorm党派,每次打开项目都得先打开应用然后找到需要打开的项目(不过后来发现,WebStorm其实也有命令行启动器,效果也一样)。但是这么做也有一个痛点,就是需要事先配置环境变量的别名才能做到快速打开。 最近一琢磨,可以利用AflfedWorkflows功能去尝试一下,于是真被我搞出来了,这里记录一下。

开始

Open in WebStorm

WebStrom打开项目。通过code命令打开指定目录下的文件夹,快速打开项目。效果如下:
notion image

运行流程

notion image

设置