004 从零开始的 mini-vlook: 主题开发基础知识 (4)

[!Example]+ 属性

  • 版本 v0.0.1-alpha+20240830

发布到 GIthub 上

分享到集市的前提是有 Github 账号,并且打算把自己的代码开源共享到 Github 上。 Github 是全球最大的程序员交流平台!里面有各路大神在这里分享自己的代码、工具、教程和生活!不仅可以学习怎么写代码、还可以学习怎么做饭——甚至是活到老!

访问 Github:https://github.com/

如果无法访问,请出门检索如何访问 Github,如果这个各位看客没有办法成功登录 Github——那么可以去看一切其他更有意义的帖子了。

登录和创建 Github 账号

注册入口在这里,其实个人感觉难度不大,按照步骤一步一步来就可以,我就不啰嗦了。

image-20240830084552-si5lmty

image-20240830085153-2y6jf7h

关于双重身份验证:

会在使用密码登录时,再让你输入一个口令,这个口令是之前保存的一个密钥: 我个人是用的 Authenticator Extension​ 插件,可以在 Chrome​ 插件中下载。建议开启并做好密钥的备份。

创建仓库

创建入口

image-20240830085115-gean7b9

创建时的描述

image-20240830085552-ylxavxq

成功后的界面

大概长下面这样为了演示,我创建了一个空仓库 名字就是 empty​ (一般应该让主题和仓库的名称一样)

image-20240830085939-wjjbuha

Git 基础知识

Git 概念和常用操作

Git 是版本控制工具,方便你和别人或者本地和服务器进行代码同步、历史溯源的工具。概念有很多,可以先只了解的简单:

  • 仓库(repository): 一个软件或者项目就是一个仓库,这里存放和这个代码相关的所有源代码、历史提交记录和其他信息。如果仓库存放到服务器就是远程仓库、如果仓库在本地电脑上就是本地仓库。两者在地位上是相等的, 多人协作时,大家一般通过约定好的一个远程仓库进行数据的同步。 Github 本质上就是一个托管的“远程仓库”。在本地一般是指工作区下面的 .git​ 文件夹的内容。
  • 工作区:软件代码所在的文件夹就是工作区,你可以在该文件下添加和修改文件和代码
  • 暂存区:在 .git/index​ 目录中,可以理解为”已添加(git add) 的仓库但是尚未提交(git commit) 的内容“,你可以理解为暂时存储的内容。
  • 添加 Git add: 把工作区的内容添加到暂存区
  • 提交 Git commit: 把暂存区的内容提交到版本库
  • 上传 git push: 把本地仓库推送到远程仓库
  • 下载 git pull:从远程仓库拉取代码到本地仓库.

还有分支(branch)、合并冲突(git merge)、变基(git reabase)这些概念,我觉得作为初学者,尤其是只有自己一个人开发的时候还用不到,先熟悉上面的基本使用,再考虑进阶学习 git 的其他内容。

Git 安装

Windows 下载 Git for windows :比较简单,一步一步按提示操作即可。不缀述,其他操作系统自行百度。

添加仓库并推送

设置密钥

设置密钥是为了我们可以在不等了 Github 账号的情况下,完成和 Github 服务器同步代码,而且,只有这样我们才有权限修改同步代码。

  1. 在桌面空白处,鼠标右击,在菜单中选择 “Open Git Bash here”,进入 Git base 界面

    image-20240830214947-k7w77yc

  2. 然后在弹出的命令行中输入 cd ~/.ssh

  3. 如果是从来没有设置过,输入 ssh-keygen.exe​ 根据提示创建密钥,创建成功后,输入 ls​ ,找到 pub 结尾的文件名。(如果已经创建创建就不用 ssh-keygen.exe​)

    image-20240830215324-lzk3u7d

  4. 继续输入 cat id_ed25519.pub​ (具体根据自己实际情况输入文件名)

  5. 把输出的内容复制保存等会用

    image-20240830215911-0ulvswh

  6. 打开 Github 添加密钥

    image-20240830220027-sy26d82

  7. 添加完大概长这样

    image-20240830220110-gpohwh3

  8. 重新进入你创建的仓库,复制你的仓库链接

    image-20240830221054-mx6yedq

关联仓库

  1. 进入主题目录

    image-20240830220507-rrwh063

  2. 在空白鼠标右击,在菜单中选择 “Open Git Bash here”,进入 Git base 界面

  3. 在 Git Base 中输入下面的命令,注意 “git@github.com:idea-zone/empty.git” 替换成你的仓库地址。(下面命令仅针对新的仓库,老仓库的话……都是老司机了,我不献丑了)

    git init
    git add .
    git commit -m "初次提交"
    git remote add origin git@github.com:idea-zone/empty.git    # 注意替换成你自己的仓库地址
    git branch -M main
    git push -u origin main
    
  4. 在浏览器刷新仓库,你可以看见你的代码已经同步到服务器上了

    image-20240830221407-7fovycs

推送代码

以后想同步代码就可以使用

git add .
git commit -m "你备注本次提交的内容"
git pull
git push

Github Action 基础知识

Github Action 可以理解成自动执行脚本。方便我们在提交代码后,让服务器也就是 Github 执行一些操作。

原因:新版主题推送要求

新版要求用需要创建 Releases​,并在 Releases​ 的 Assets​ 中包含 package.zip​ 压缩包。但是……默认情况下,不会有这个,所以需要通过 Action 实现。

image-20240830222236-y71tian

Action 参数设置

我用脚本的创建规则是:在每次发布 Releases 的时候,需要手动添加一个新的 tags,这样在成功发布 Releases 的时候就会自动把仓库的代码打包并且重命名为 package.zip 上传到资源中。【其实可以改成当 develop 分支合并到 master 分支时自动完成,不过我一个人敲代码,这样也挺好的……╮(╯-╰)╭ 我懒得改了】

  1. 切换到 Action 标签页,并设置自己的 workflow

    image-20240830222740-s9r1s6x

  2. 复制粘贴下面的代码(有英文注释,大家配合翻译看吧,因为也是从网上东抄西抄的)

    name: Create package.zip 3
    on: 
      push: 
        tags:
          - "*"
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          # Create release
          - name: Create release
            uses: google-github-actions/release-please-action@v3
            id: release
            with:
              release-type: node
              package-name: release-please-action
              ## branch to open pull release PR against (detected by default)
              default-branch: main
              ## Should breaking changes before 1.0.0 produce minor bumps? Default false
              bump-minor-pre-major: true
              ## Should feat changes before 1.0.0 produce patch bumps instead of minor bumps? Default false
              bump-patch-for-minor-pre-major: true
              ## If set, create releases that are pre-major or pre-release version marked as pre-release on GitHub. Defaults false
              prerelease: true
              ## header used within the release PR body, defaults to using :robot: I have created a release *beep* *boop*
              pull-request-header: ':robot: A new release will be created'
              ## A JSON formatted String containing to override the outputted changelog sections
              changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"refactor","section":"Code Refactoring","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":false},{"type":"perf","section":"Performance Improvements","hidden":false}]'
    
          # Checkout
          - uses: actions/checkout@master
          - name: Archive Release
            uses: thedoctor0/zip-release@0.7.1
            with:
              type: 'zip'
              filename: 'package.zip'
              exclusions: '*.git* /*node_modules/* .editorconfig'
    
          - name: Upload Release
            uses: ncipollo/release-action@v1
            with:
              allowUpdates: true
              prerelease: false
              artifactErrorsFailBuild: true
              removeArtifacts: false
              replacesArtifacts: false
              artifacts: "package.zip"
              token: ${{ secrets.GITHUB_TOKEN }}
    

    image-20240830222922-qn2n7jwimage-20240830223000-4wbwwip

  3. 切换到 Settings 页面给 Action 开放权限

    image-20240830224223-fhc712a

  4. 重新切换回 Code 标签页,创建 Releases

    image-20240830223122-0sk87nn

  5. 首先创建一个 tag,为了方便 tag 最好就是当前主题的版本号

    image-20240830223231-3d8g7ok

  6. 输入相关信息,然后点击发布按钮(发布内容就是个安慰,因为会被覆盖掉,你还不如写好你每次的 git commit 的内容呢)

    image-20240830223342-eoq8j8s

  7. 当前状态是这样

    image-20240830223404-11wwpa8

  8. 因为还没成功

    image-20240830223414-84yi0qk

  9. ​​如果失败是这样

    image-20240830224343-b0193h3

  10. 成功的话是这样

    image-20240830224505-hzl86nt

  11. 切换到 Relasese 里面可以到现在的资源是三个了

    image-20240830224547-zhtobk3

  12. 后续怎么创建 Relasese 的时候记得改 theme.json 中的版本,并且创建和版本号一样的 tag 即可。

第一次添加到集市

  1. 进入 siyuan 的集市仓库: https://github.com/siyuan-note/bazaar,并且选择 theme.json 文件

    image-20240830224836-m7prtou

  2. 点击编辑

    image-20240830225018-xcdtlxu

  3. 添加上主题信息(因为是演示,所以最后我实际上没有添加和提交)

    image-20240830225145-b7m49jf

  4. 创建提交

    image-20240830225222-xkxejga

  5. 然后提交 pull request 等待官方合并即可。

  6. 一般会延迟 1~2 个小时左右.就可以在集市中看到你上传的主题了。(PS:如果上传集市,请务必用自己的名字,而且建议是真的修改了代码,两个一模一样只是名字不一样的主题……(′д` )…彡…彡)

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22368 引用 • 89519 回帖
  • 主题
    25 引用 • 168 回帖 • 5 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...