XiNGRZ's BLOG

一些唠叨

做了个基于 Web 的 Gerber 渲染器

关注我比较久的人可能知道,我之前会利用 tracespace 和一些脚本配合将我做的 PCB 渲染成效果图。但是每次操作的步骤有点繁琐。于是在鸽了不知道多久后…我终于自己做了一个工具来完成这件事情了。

image

特性:

  1. 可以将 Gerber 渲染成 SVG 或 PNG (高达 100 dots per mm 的分辨率)
  2. 内置了几种常见配色方案 (咖喱创用户都懂)
  3. 支持渲染浮雕材质,便于你扔进 3D 软件渲染出逼真的铜层凹凸效果 (用法见 BV1pK4y1g7fY)

地址:gerber.xingrz.me

image
image
image
image

关于新博客

上一篇文章说了,我不喜欢用 Jekyll 写博客。具体来说,我不喜欢在代码仓里码字。我觉得这么做很奇怪,感觉我需要正襟危坐打开 VSCode,准备各种图片素材,git commitgit push

那这次重开的博客,怎么解决这个问题呢?简而言之,Issues 和 Actions。

GitHub Issues 本身就可以充当一个内容管理系统。你想想:它支持 Markdown,它的 open 和 closed 状态正好可以对应草稿和发布,它的 labels 就是 tags…它甚至可以粘贴带图!

image

How?

这一整个流程,可以简化如下:

  1. 我有一个私有仓,xingrz/blog,我在里面码字

  2. 我有一个公开仓,xingrz/xingrz.github.io,用来发布 GitHub Pages

  3. 在私有仓里,我做了一个 sync workflow。只要 Issues 有任何变化,就触发公开仓的另一个 deploy workflow

    image
  4. 公开仓的 deploy workflow 作用很简单,就是拉取私有仓的 Issues,生成 posts,然后生成最终 HTML,部署

    image

公开仓的 deploy workflow,大家自己也可以看到:deploy.yml。它的另一个关键是 sync.mjs 这个用来拉取 Issues 并生成 posts 的脚本。

私有仓的 sync workflow 如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
name: Sync posts

on:
issues:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: sync
cancel-in-progress: true

jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Sync
run: gh workflow run deploy.yml
env:
GH_REPO: xingrz/xingrz.github.io
GH_TOKEN: ${{ secrets.DEPLOY_TOKEN }}

如果你想把这套流程用到你自己的博客,你需要开一个 Personal Access Token 分别加到两个仓库的 Secrets 里(名称为 DEPLOY_TOKEN)。并且对应更改这两个 workflow 里的 GH_REPO 变量。

挖坑

基于 Actions,可以有更多玩法,比如:

  • 自动发一条 Telegram channel 广播
  • 调用 Puppeteer 生成长截图

以后再说吧。

结语

好了,这篇分享就到这里。主要就是想试试真正用这个流程发一篇文章而已。

博客又重开了

为什么呢

刚毕业工作的时候试着写了一段时间博客。后来因为 Jekyll 每次新建文章都过于严肃,慢慢地就鸽了(刚刚去翻了翻仓库,甚至有一篇草稿躺了 8 年没写完)。

这几年有时候会忍不住码一条非常长的微博来分享一些技术。但是逐渐发现这种分享还是应该好好地用 Markdown 写下来。想来想去,决定还是重新搭一个博客好一点。

就看这次会在什么时候鸽了。

Proudly powered by Hexo and Theme by Hacker
© 2022 XiNGRZ