贡献

根据您对许多开源项目常用工作流程的经验水平,例如 git/GitHub、命令行以及设置本地开发环境,为本网站做出贡献可能非常轻松,也可能需要一定的学习曲线。如果您属于前者,那太棒了!请跳到后面了解如何开始。但是,如果您认为自己属于后者,并且因为对工具缺乏熟悉感而难以参与开源项目,**我们仍然欢迎您**!除了提供学习 jQuery 的资源外,本网站的一个主要目标是为您提供一个鼓励性的环境来培养这些技能,同时仍然做出重要的贡献。许多人认为参与像 jQuery 这样的编程项目唯一的方法是解决需要对代码库有细致理解的复杂错误,或者提出可能或不可能在开发团队计划范围内的增强功能。事实是,还有更多方面:改进文档、处理网站属性以及支持其他用户是至关重要的方面,这些方面总是需要更多的帮助。如果您愿意分享您的时间和专业知识来帮助其他开发人员,我们也愿意[帮助您熟悉所需的工具](#getting-help)。 ## 为什么要贡献? 如果您曾经寻找过有关 jQuery(或一般网页开发)的帮助,您就会知道寻找过程有时会充满挑战。这可能是一个需要仔细筛选大量不同帖子直到找到那篇对于您的特定问题而言兼具可靠性、及时性和帮助性的文章的过程。如果您是这些作者之一——谢谢!——那么您可能熟悉那种发布有用的提示后,却不知道它是否真正传达给了需要它的人,以及多年后或版本更新后该如何处理旧帖子的沮丧感。我们邀请您分享这份精力,帮助我们汇集这个生态系统并使其进一步发展!如果您曾经帮助过任何人,无论是同事还是陌生人,解决某个特定问题,那么您就知道拥有一个可以快速链接到的参考资料的价值,它会说“这是如何做到的”。本网站旨在成为这个汇编,但总有更多需要完善和添加的地方,我们也需要您的帮助!当然,我们也会对您的工作给予肯定!每篇文章的**贡献者**部分是根据文件上的 git 提交日志生成的,因此您的帮助将得到公开认可。 ## 它是如何工作的? ### 内容 本网站的内容维护在[这个 GitHub 仓库中](https://github.com/jquery/learn.jquery.com),作为 `page` 目录中[Markdown](http://daringfireball.net/projects/markdown/)文件的集合。章节和文章的展示顺序由 [order.json](https://github.com/jquery/learn.jquery.com/blob/master/order.json) 文件控制。 ### 设计 网站的布局和设计由我们的 [`jquery-wp-content`](https://github.com/jquery/jquery-wp-content) 控制,这是一个自定义的 [WordPress](https://wordpress.ac.cn) 配置,用于运行(或不久的将来将运行)jQuery 基金会运行的所有网站。[主主题](https://github.com/jquery/jquery-wp-content/tree/master/themes/jquery)控制着我们所有网站的大部分布局,还有一个[子主题](https://github.com/jquery/jquery-wp-content/tree/master/themes/learn.jquery.com)控制着学习网站特有的模板和样式。[`jquery-wp-content`](https://github.com/jquery/jquery-wp-content) 为我们的生产和预演环境提供支持,并且可以相对容易地设置为本地开发环境。 ### 构建 `page` 目录中的静态内容使用 [grunt](https://grunt.node.org.cn) 部署到 [`jquery-wp-content`](https://github.com/jquery/jquery-wp-content) 实例,特别是我们创建的两个 grunt 插件: * [grunt-jquery-content](https://github.com/jquery/grunt-jquery-content) – 将各种格式(HTML、Markdown、XML)的内容预处理为 HTML,应用语法高亮和一些简单的部分支持,为以下处理做准备: * [grunt-wordpress](https://github.com/scottgonzalez/grunt-wordpress) – 使用 [XML-RPC](http://codex.wordpress.org/XML-RPC_Support) 将静态内容同步到 WordPress ## 我如何提供帮助? 最简单和最不复杂的方式是[提交问题](https://github.com/jquery/learn.jquery.com/issues),如果您发现应该修复的错误、可以改进的地方,或者您有新文章的想法。我们将使用这些问题继续讨论并跟踪您提出的任何事项的进展。如果您想更进一步,贡献新文章、编辑现有文章或处理网站本身,您首先需要[派生](https://help.github.com/articles/fork-a-repo)一个仓库。当您有希望审查并整合到网站中的更改时,请提交[拉取请求](https://help.github.com/articles/using-pull-requests)。*(如果您不熟悉 Git,您仍然可以通过使用 GitHub 的网页界面功能来做出贡献。您可以直接通过[GitHub 的浏览器内编辑器](https://github.com/blog/905-edit-like-an-ace)编辑文件。您可以[直接从派生仓库创建和删除分支](https://github.com/blog/1377-create-and-delete-branches),因此您也可以提交新文章。无论哪种方式,我们仍然鼓励您尽快[学习如何使用 Git 和 GitHub](https://help.github.com/)。)* ## 本地开发 为了在本地预览您的更改、处理设计/布局问题或处理其他 jQuery 网站的内容,并通常最有效地做出贡献,我们建议您设置本地开发环境。您可以从我们的[有关为 jQuery 基金会网站贡献的文档](http://contribute.jquery.org/web-sites/#local-development)中了解如何设置。 * **Windows 注意事项:** 行尾需要是 Unix 风格(仅换行符)。确保您的文本编辑器创建的新文件使用 Unix 风格的行尾。此外,将以下设置添加到您的 git 配置中,可以在从仓库拉取时保持 Unix 风格的行尾: ``` $ git config --global core.autocrlf true ``` ### 处理内容 一旦您的环境正常工作,这里是您进行更改时应遵循的一般步骤: 1. 根据 `master` 创建一个新的“feature”分支:`git branch ` 2. 切换到该分支:`git checkout ` 3. 处理您的出色贡献。 4. 在您工作并想预览更改时,使用 `grunt` 将它们部署到您的网站。您也可以使用 `grunt watch` 让网站监视 `page` 目录中的任何更改,并在每次保存时自动部署更改。 5. 完成后,暂存新/修改的文件以进行提交准备:`git add page/faq/how-do-i-add-a-new-article-to-the-learn-site.md` 6. 将文件提交到您的本地仓库:`git commit -m "add a relevant message describing the change"` 7. 将文件推送到您的 GitHub 远程仓库:`git push origin ` 8. 转到您在 GitHub 上的派生仓库并提交新的[拉取请求](https://help.github.com/articles/using-pull-requests)。有关管理派生仓库和向 jQuery 基金会提交拉取请求的更多建议,请阅读我们的[提交和拉取请求指南](http://contribute.jquery.org/commits-and-pull-requests/)。 ### 添加新文章 1. 将文件添加到 `page` 文件夹中的正确文件夹。 2. 将 slug 名称(不带扩展名的文件名)添加到 `order.json` 中所需的位置。 3. 运行 `grunt` 4. 您现在应该能够导航到该文件。 ### 格式化文章 是的!请查看我们的[风格指南](https://learn.jqueryjs.cn/style-guide/)以获取有关撰写和格式化约定的更多信息。 <h2 id="getting-help">获取帮助</h2> 如果您在使网站的任何部分正常工作时遇到困难,或者有任何疑问,我们在这里提供帮助。获取帮助的最佳地点是在 [IRC](http://en.wikipedia.org/wiki/Internet_Relay_Chat) 上,在 [Freenode](http://freenode.net) 的 `#jquery-content` 频道中。如果您不熟悉 IRC,可以使用[网页聊天网关](http://webchat.freenode.net/)。此外,jQuery 内容团队在周三美国东部时间下午 1 点在 Freenode 的 `#jquery-meeting` 频道举行[公开的每两周一次的会议](http://jquery.org/meeting)。如果 IRC 不适合您,但您仍然想要或需要取得联系,请使用网站的 [GitHub 仓库](https://github.com/jquery/learn.jquery.com)或发送电子邮件至 `content at jquery dot org`。