前端之美 - GitHub前端工具鏈整理匯總

jopen 11年前發布 | 16K 次閱讀 Github

        給 GitHub-Linguist 添加 Literate CoffeeScript 支持的時候稍稍總結了一下這個問題,即 GitHub 是怎樣在前端渲染它的 Markdown 和處理代碼高亮的。

前端之美 - GitHub前端工具鏈整理匯總

        大體上似乎是這個流程:

前端之美 - GitHub前端工具鏈整理匯總

        GitHub 在前端用到的一系列工具基本上都是開源的。現簡單地整理如下。

        1. HTML / CSS / JavaScript

        1. 1. HTML 模板

        GitHub 的標記 & 模板風格指南:https://github.com/styleguide/templates

        1. 2. 樣式 & CSS

        GitHub 使用的 CSS 替代品是

        采用文檔框架

        GitHub 的樣式 & CSS 風格指南:https://github.com/styleguide/css

        1. 3. 行為 & JavaScript

        GitHub 使用的 JavaScript 替代品是

        GitHub 的行為 & JavaScript 風格指南:https://github.com/styleguide/javascript

        2. GitHub Flavored Markdown 和渲染引擎

        GitHub 使用的 Markdown 是對原標準的一個擴展集:

        支持 GitHub Flavored Markdown 的渲染引擎:

        RedCarpet 的核心庫是用C實現的,叫做 Sundown(RedCarpet 是 Sundown 的 Ruby wrapper):

        Sundown 項目已經中止開發。GitHub 正在計劃與 Reddit、StackOverflow、Meteor 協作開發一個統一的 Markdown 標準,以及一個相應的輕量級、快速的、高安全性的渲染引擎。發布時間預期為去年年底(或者今年年底?)。關于該替代品的開發狀況,目前尚無可靠消息得以確 認。

        3. 標記語言渲染框架

        GitHub 用來渲染各種文本標記語言的框架(支持多種主流的輕量級標記語言,如 Markdown、Textile、RDoc、Org mode、reStructuredText、AsciiDoc 等,依賴于具體的引擎來完成。例如對 Markdown 的渲染依賴于RedCarpet):

        4. 代碼高亮渲染

        基于 Python 的代碼高亮工具 Pygments 的一個 Ruby wrapper:

        取代了原來的Albinohttps://github.com/github/albino

        5. 語言識別

        GitHub 用它來識別代碼庫中的語言(屬于何種程序語言或文本標記語言):

        這個庫也決定了 GitHub 的 Top Languages 頁面中哪些編程語言將會被展示出來。

        對于程序語言,GitHub 將調用Pygments.rb對代碼進行高亮處理;

        對于文本標記語言,GitHub 將把文件交由GitHub-Markup進行渲染。

        6. 在線編輯器

        在線代碼編輯功能使用的是 Ace(Ajax.org Cloud9 Editor)。這是一個非 GitHub 項目:

        7. 基于 Git 的 Wiki 框架

        用于托管 GitHub 的項目 Wiki:

        8. 數據可視化框架

        用于渲染 Contribution graphs / Network graphs 等頁面的可視化效果:

        9. GitHub Pages / 靜態網站生成器

        GitHub Pages 托管服務使用的靜態網站生成器:

        (Jekyll 并非 GitHub 的官方項目,沒有使用 GitHub-Markup 作為其渲染框架。在最近的版本中才開始支持使用 RedCarpet 作為其 Markdown 引擎。)

        10. 繪文字 

        GitHub 官方指定繪文字表情(詳細列表參見 http://www.emoji-cheat-sheet.com/):

        (這一套通用的繪文字同時也被 Campfire 和 Trac 等支持。)

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!