如下是这些开源项目的介绍:
linguist
语言识别库,能够自动根据项目的代码来识别你所使用的语言。 在你的项目源代码页面,可以看到一个彩条,点开以后会显示项目中的编程语言比例。linguist主要通过文件的后缀来识别,对于一些通用的扩展名,例如.m文件,linguist通过一些语言的特征片段来做判断。由于编程语言很多,linguist还不能覆盖所有语言的检测。
jquery-pjax
pjax是Github的联合创始人之一defunkt的作品,它使用html的pushState特性与ajax,可以实现页面内容动态局部刷新,当点击项目源代码页面中具体的一个文件或者文件夹时,你将会看到页面的其他部分是不变的,只有定义的页面DOM会刷新,这里使用的就是pjax。
elasticsearch
Eleasticsearch支撑了Github的搜索功能,2年之前Github使用Solor做搜索,随着用户和托管项目的增加,索引的大小超过了solor节点的最大存储空间,也出现了很多的问题,Github团队在思考解决方案时决定使用Elasticsearch做替换。Github最开始使用ES时,使用了44台亚马逊EC2实例,每台实例配备2T的存储,其中8台实例指负责查询请求。目前,Github已经将原有的EC搜索集群迁移到了东海岸的一个数据中心,使用8台物理主机替换了44台EC2。
Rails
Ruby实现派高的MVC Web框架。Github的用户界面和功能大部分基于Rails构建,不过需要注意的是现在虽然Rails的项目版本已经发展到了Rails 4,但是Github依旧使用的是自己维护的2.3分支,对于不保持和现有的Rails主版本号一致的原因,Github员工Kneath做了如下的解释:
. 花更过的时间来升级更新Rails,将会减少为用户构建新特性的时间,我们更关注用户;
. 性能问题是一个很重要的考虑。在过去的几年中,我们极大的减少了响应时间。而升级Rails不仅会谈喊带来一个更慢的框架,而且还会引入一个不同的架构——我们需要再根据新的框架特性来定位优化性能。我们对于现有的框架已经做了很多的优化以保持性能稳定,最主要的是:将时间花费在升级上不会让我们的架构更快。
. 过去的三年我们一直在升级这个堆栈,不升级Rails版本我们依然可以使用新的特性。
Redis
Redis是K/V存储系统,知名的NoSQL实现之一,在Github,主要使用Redis来进行队列中的异常处理。在Github早期,曾尝试过很多的基于Ruby的队列机制,也曾使用Amazon SQS,但是这些方案都不能在Github快速增长的同时满足稳定性要求,最终Github迁移到了使用Redis的技术方案resque。
sprocket
Sprocket是一个网站资源打包的Ruby库,它不仅能够管理含羡野JavaScript和CSS资源,还可以按照pipline的方式来流式预处理CoffeeScript、Sass、SCSS和LESS代码等;
libgit2
libgit2是一个可移植、纯C语言实现的Git核心方法类库,提供API重新链入Git方法。Github的背后使用的原生的git来实现commit、push等功能,但是使用libgit2来针对桌面应用调用、Ruby代码中调用等;
rugged
libgit2的Ruby类库;
bcrypt-ruby
OpenBSD bcypt()密码哈希算法的Ruby实现;
html-pipeline
html-pipline是一个gem包,可以将现有Github前端HTML中的一些特性进行流式处理,例如在Github的评论框中,你可以@某一个人、输入emoji的表情、使用markdown的语法来写内容等,但是这些都是由单独的插件来控制的,html-pipeline可以流式的使用相应的插件处理原始内容,例如先将markdown转义成html,继而自动添加emoji表情,然后进行代码的语法高亮等。
gemoji
在2013年的QCon北京前夜:Github Drink Up活动中,来自Github的工程师Tim在现场的活动中谈到了他们的一个文化:使用emoji。他解释道:“很多情感使用文字不能做出形象的表达,但是使用emoji表情却能够起到不一样的效果”。在Github现有评论框或其他内容中,都可以看到emoji的身影,所使用的就是gemoji这个gem包。
jekyll
Jekyll是一个静态博客生成的程序,Github中项目的Page页面,默认选型使用的就是jekyll。
gollum
Gollum是一套基于git的wiki系统,Github项目的wiki系统背后使用的就是这套开源框架;
octokit.rb
Github API的官方Ruby SDK;
Hubot
Hubot是Github自行开发的一个聊天机器人,当然它已经超过了聊天机器人的范畴,Github作为一个异步办公的团队,日常的协作、沟通很大部分依赖于聊天室,通过Hubot,Github的员工可以在聊天室中给机器人定制一些特定的回复、3D打印模型,甚至通过hubot来部署生成环境的代码、获取服务状态等,在2013年的QCon北京中,Giuthub的工程曾针对如何使用Hubot做运维进行过分享:《ChatOps at GitHub》。
d3
d3是使用JavaScript实现的数据可视化框架,使用HTML、SVG和CSS等,在d3的基础之上发展处诸如crossfilter、NVD3.js等一系列扩展或者简化框架,并且形成了一个良好的社区。作者mbostock目前供职于NYTimes,d3是他的博士论文项目,目前Github使用d3来展示托管项目提交历史、记录等的可视化效果图。
plax
plax是控制视差元素的JavaScript类库,你可以在404、505等页面看到它的实现效果。
ace
Ace是一个使用Javascript开发的代码编辑器,具备语法高亮、快捷键绑定等特性, Github使用Ace实现基于web的代码编辑功能。
zepto
Zepo是一个JavaScript框架,其特点是兼容现有jQuery API的同时,自身体积十分小;
zeroclipborad
Github的“点击复制到粘贴板”的功能就是使用的zeroclipboard,zeroclipboard使用一个不可见的Adobe Flash动画来实现复制粘贴,并提供Javascript的API接口以供调用。
charlock_holmes
charlock_holmes用来检测字符编码格式,并可以自动将字符编码转化成UTF-8。
puppet
服务器运维工具,可以进行自动化部署、集群管理等。
moment
moment是一个日期框架,用于解析、验证、格式化日期等,其中一个常用的功能是将原始的Javascript时间类型转化成方便阅读的时间说明格式,例如:”2小时之前“、”3天之前“这种形式。
bower
前端资源包管理工具,可以通过bower install <package>的形式将常用的前端资源下载到本地的项目目录中,例如:bower install bootstrap将会自动下载bootstrap的项目资源到本地的项目目录中,不需要自己手动来下载、移动资源文件,并且通过配置文件可以方便分享给同事、简化项目初始化等;
resque
Resque是Github Enterprise中使用的一个基于Redis的后台作业控制系统,提供可视化的界面,可以方便的监控后台作业的运行状态和监控情况。
另外,Github还发布了“支撑Github Windows客户端的开源项目”和“支撑Github Mac客户端的开源项目”两个Showcase。
§§ --- README.md-## Welcome to GitHub Pages
§§ 1000
+# Welcome to GitHub Pages
§§ --- README.md
-You can use the [editor on GitHub](https://github.com/xuxianyun/xuxianyun.github.io/edit/master/README.md) to maintain and preview the content for your website in Markdown files.
§§ 1002
+## 什么是凳岁Markdown
§§ --- README.md
-Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files.
§§ 1004
+Markdown 是一种轻量级标记语言,喊粗燃它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。—— [维基百科](https://zh.wikipedia.org/wiki/Markdown)
§§ --- README.md
-### Markdown
§§ 1006
+## Markdown的特点
§§ --- README.md
-Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for
§§ 1008
+* 简洁
+* 易读易写
+* 兼容HTML
+* 有效的抗扰动性
§§ --- README.md
-```markdown
-Syntax highlighted code block
§§ 1010
+## 标题
§§ --- README.md
-# Header 1
-## Header 2
-### Header 3
§§ 1013
+# 一级郑虚标题
§§ --- README.md
-- Bulleted
-- List
§§ 1017
+## 二级标题
§§ --- README.md
-1. Numbered
-2. List
§§ 1020
+### 三级标题
§§ --- README.md
-**Bold** and _Italic_ and `Code` text
§§ 1023
+#### 四级标题
§§ --- README.md
-[Link](url) and ![Image](src)
-```
-
-For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/).
-
-### Jekyll Themes
-
-Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/xuxianyun/xuxianyun.github.io/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file.
-
-### Support or Contact
-
-Having trouble with Pages? Check out our [documentation](https://help.github.com/categories/github-pages-basics/) or [contact support](https://github.com/contact) and we’ll help you sort it out.
§§ 1025
+##### 五级标题
(GitBook) 是一个使用 Git 和 Markdown 来构建书籍的现代化的文档平台工具,虽然已经很好了,但由于gitbook有时候由于网络等原因会导致访问书写草稿不是很方便,所以结合群友的实用情况,对其他的一些工具也做一推荐,这也是写这一篇的主要原因
目前来看是国内最靠谱的选择,支持电子出版
看云为免费配手核用户提供
官网地址: 看云 | 专注薯仿技术文档在线创作、阅读、分享和托管
看云文档示例:序言 · ThinkPHP3.2.3完全开发培掘手册 · 看云
在线文档编辑与协同工具,免费用户一共有10GB上传流量
官网地址: https://www.yuque.com/
帮助文档示例: https://www.yuque.com/yuque
BookStack 是基于 Mindoc、使用Go语言的Beego框架开发的功能类似GitBook和看云的在线文档管理系统,实现了文档采集、导入、电子书生成以及版本管理的文档功能,并推出了配套的开源微信小程序 BookChat 和配套的开源手机APP BookChatApp 。
详细 安装部署文档
在线文档管理系统,相当完备,需要有一台服务器自建
演示官网: https://www.bookstack.cn
开源地址: TruthHun/BookStack
非常轻量级的文档,可以托管在Github page
官网及演示: https://docsify.js.org/#/zh-cn/
开源地址: https://github.com/docsifyjs/docsify
这是一个开源文档,可以托管在Github page等平台,支持markdown
演示以及文档: https://docute.org/zh/
开源地址: https://github.com/egoist/docute
这是一个开源接口文档在线管理系统
官网地址: https://www.iminho.me
说明文档及演示: https://www.iminho.me/wiki/docs/mindoc
开源wiki系统,支持多人协作,以及丰富的后台管理设置,个人觉得比mediawiki好看多了
官网及演示: https://www.dokuwiki.org
开源wiki程序
官网及演示: https://www.mkdocs.org
开源地址: https://github.com/mkdocs/mkdoc
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)