我一直觉得 Artalk 的 ui 设计的很不协调,特别评论框下方的“ 评论数、通知中心”
这并非重要功能,但是官方没有做开关控制。实现后,感觉很实用,可以推一下
确定上游
$ git remote remove upstream$ git remote add upstream https://github.com/ArtalkJS/Artalk.git$ git remote -vorigin git@github.com:achuanya/Artalk-ui.git (fetch)origin git@github.com:achuanya/Artalk-ui.git (push)upstream https://github.com/ArtalkJS/Artalk.git (fetch)upstream https://github.com/ArtalkJS/Artalk.git (push)因为我 main 分支有非常多改动,比如评论框 UI 等等。那些我不想提交,这里必须创建一个干净的分支
创建分支
$ git fetch upstream# 基于上游仓库创建一个干净分支$ git checkout -b clean-pr-branch upstream/masterbranch 'clean-pr-branch' set up to track 'upstream/master'.Switched to a new branch 'clean-pr-branch'cherry-pick 指定 commit
$ git cherry-pick 6302e4216cc5c1f34df49475ef99e81d883a2d79CONFLICT (modify/delete): conf/artalk-ui-example.yml deleted in HEAD and modified in 6302e421 新增两个前端配置开关,用于控制列表头部显示). Version 6302e421 (新增两个前端配置开关,用于控制列表头部显示) of conf/artalk-ui-example.yml left in tree.Auto-merging conf/artalk.example.simple.ymlAuto-merging conf/artalk.example.ymlAuto-merging ui/artalk/src/defaults.tsAuto-merging ui/artalk/src/style/list.scsserror: could not apply 6302e421... 新增两个前端配置开关,用于控制列表头部显示hint: After resolving the conflicts, mark them withhint: "git add/rm <pathspec>", then runhint: "git cherry-pick --continue".hint: You can instead skip this commit with "git cherry-pick --skip".hint: To abort and get back to the state before "git cherry-pick",hint: run "git cherry-pick --abort".hint: Disable this message with "git config set advice.mergeConflict false"解决冲突
$ git statusOn branch clean-pr-branchYour branch is up to date with 'upstream/master'.
You are currently cherry-picking commit 6302e421. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --skip" to skip this patch) (use "git cherry-pick --abort" to cancel the cherry-pick operation)
Changes to be committed: modified: conf/artalk.example.simple.yml modified: conf/artalk.example.yml modified: conf/artalk.example.zh-CN.yml modified: conf/artalk.example.zh-TW.yml modified: ui/artalk/src/defaults.ts modified: ui/artalk/src/list/list.ts modified: ui/artalk/src/plugins/list/count.ts modified: ui/artalk/src/style/list.scss modified: ui/artalk/src/types/config.ts
Unmerged paths: (use "git add/rm <file>..." as appropriate to mark resolution) deleted by us: conf/artalk-ui-example.yml
$ git rm conf/artalk-ui-example.ymlrm 'conf/artalk-ui-example.yml'
$ git cherry-pick --continue[clean-pr-branch 0b5de4d3] 新增两个前端配置开关,用于控制列表头部显示 Date: Wed Nov 26 02:23:21 2025 +0800 9 files changed, 61 insertions(+), 3 deletions(-)
$ git push origin clean-pr-branchEnumerating objects: 39, done.Counting objects: 100% (39/39), done.Delta compression using up to 16 threadsCompressing objects: 100% (20/20), done.Writing objects: 100% (20/20), 2.75 KiB | 281.00 KiB/s, done.Total 20 (delta 18), reused 0 (delta 0), pack-reused 0 (from 0)remote: Resolving deltas: 100% (18/18), completed with 18 local objects.remote: This repository moved. Please use the new location:remote: git@github.com:achuanya/artalk-ui.gitremote:remote: Create a pull request for 'clean-pr-branch' on GitHub by visiting:remote: https://github.com/achuanya/artalk-ui/pull/new/clean-pr-branchremote:To github.com:achuanya/Artalk-ui.git * [new branch] clean-pr-branch -> clean-pr-branch大致意思就是上游没有这个文件 conf/artalk-ui-example.yml 这是我复制的备份配置,用处不大,删了然后推走
使用 GitHub CLI 创建 PR
$ gh auth login? Where do you use GitHub? GitHub.com? What is your preferred protocol for Git operations on this host? HTTPS? Authenticate Git with your GitHub credentials? Yes? How would you like to authenticate GitHub CLI? Login with a web browser
! First copy your one-time code: C42D-217CPress Enter to open https://github.com/login/device in your browser...✓ Authentication complete.- gh config set -h github.com git_protocol https✓ Configured git protocol✓ Logged in as achuanya
$ gh pr create --repo ArtalkJS/Artalk --base master --head achuanya:clean-pr-branch
Creating pull request for achuanya:clean-pr-branch into master in ArtalkJS/Artalk
? Title (required) 新增两个界面配置开关,用于控制:左侧“评论数”、右侧“通知中心” 的显示控制? Body <Received>? What's next? Submithttps://github.com/ArtalkJS/Artalk/pull/1113地址都给出了,说明 PR 已经创建好了
不过 Artalk 官方已经断更几年了,审核过与否都不重要,就当玩了