ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

为开源提 PR

2022-09-12 19:31:01  阅读:213  来源: 互联网

标签:PR dom 更改 开源 html localStorage 项目


PR 可让你在 GitHub 上向他人告知你已经推送到存储库中分支的更改。 在 PR 打开后,你可以与协作者讨论并审查潜在更改,在更改合并到基本分支之前添加跟进提交。

image

为什么 PR

使用 PR 的主要原因是促进有益的代码审查过程。如果允许团队中的每个人都在不收集反馈和确保质量的情况下编辑代码,则项目很快就会变得一团糟并存在许多问题。代码审查被证明有助于将项目的标准保持在更高的水平,并减少合并到项目中的问题数量。

代码审查

  • 代码

在合并更改之前检查更改的过程称为 代码检查。建议的更改可以像修复一个小的拼写错误一样简单,也可以像向项目添加数百个具有重大更改的文件一样复杂。当发起拉取请求时,项目的维护者能够查看建议的更改,提出编辑建议,并批准要合并的建议更改。

  • 审查人

拉取请求的作者是对所提议的项目进行更改的一个或多个人。审稿人通常是与作者的队友或合作者,负责审校建议的更改。有许多方法可以决定谁应该查看因项目而异的更改。一些较大的项目有有限数量的“维护者”,他们是一组定义的审阅者,允许批准将更改合并到项目中。其他项目允许除作者以外的任何人批准要合并的更改。

PR 实录

选取的项目是博客园主题 Blogure

如果希望为项目做贡献, 首先要检查目前项目中有那些悬而未决的问题, 有哪些希望新人参与. 主要的渠道就是 issues.

issues

image

want helped 表示是一个需要大家帮助的 issue, 点进入可以看到具体的项目描述, 如果有兴趣就可以将 Assignees 选择自己.

image

如果你有其他好的想法, 也可以通过 New issue, 发起讨论.

回到当前 issue, 尝试去理解下需求内容, 如果描述不够清楚, 可以在评论区讨论. 这个需求说了, 原来主题切换到暗黑模式后, 如果此时刷新, 就会失效, 希望将状态存入到 localStorage 中, 以便用户下次可以保存暗黑模式.

把项目 fork 到自己的仓库中, 就可以开始这次旅程了.

coding

通过描述, 完成了下面的代码, 通过 diff 来看到这次代码的变化.

$ git diff page_begin/footer.html
diff --git a/page_begin/footer.html b/page_begin/footer.html
index d31e799..9043f31 100644
--- a/page_begin/footer.html
+++ b/page_begin/footer.html
@@ -4,7 +4,7 @@
         <a href="https://github.com/xnuc/cnblogs-theme-blogure">source</a></small>
     <label for="switch">
         <input type="checkbox" style="position:fixed;bottom:var(--spacing);left:var(--spacing);" id="dark-switch"
-            role="switch" @click="darkSwitcher($el)">
+            role="switch" @click="darkSwitcher($el)" :checked="localStorage.getItem('data-theme') === 'dark' ?? false">
     </label>
     <template v-if="vm.main.layout === 'post'">
         <label for="switch">
@@ -23,12 +23,20 @@
             $template: '#blogure-footer',
         }
     }
-    
+
     function darkSwitcher(dom) {
+        darkSwitcherWithStorage(dom)
         if (dom.checked) document.querySelector('html').setAttribute('data-theme', 'dark')
         if (!dom.checked) document.querySelector('html').setAttribute('data-theme', 'light')
     }
 
+    function darkSwitcherWithStorage(dom) {
+        if (!window.localStorage) return
+        if (dom.checked) localStorage.setItem('data-theme', 'dark')
+        if (!dom.checked) localStorage.setItem('data-theme', 'light')
+    }
+    if (window.localStorage) document.querySelector('html').setAttribute('data-theme', localStorage.getItem('data-theme'))
+
     function tocSwitcher(dom) {
         if (dom.checked) {
             document.querySelector('#toc').style.transform = 'translate(0)'

确认无误后, 可以提交到自己的仓库, 如果有提交规范, 注意提交规范.

git add .
git commit -m "feat: 暗黑模式存入localStorage #40"
git push

PR

提交后, 在 fork 仓库可以发起提交了.

image

有的项目会有严格的分支保护, 这个项目提示必须通过至少一个项目成员的代码审查. 右侧可以添加代码审查人, 等待审查结果.

image

审查过程中, 可能会有成员提出指导性建议. 如果你认为合理, 可以修改. 或者不合理, 在他的建议下面继续讨论.

merge

检查通过后, 可以 merge 到 master.

image

重新回到 issue 区, 将提交绑定到这次 issue 上, 关闭这个 issue.

image

看到 Closed, 这次简单的 PR 就完成了.

image

标签:PR,dom,更改,开源,html,localStorage,项目
来源: https://www.cnblogs.com/mossxzzom/p/16686963.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有