<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          語雀文檔編輯器將開源:始于但不止于Markdown

          共 3539字,需瀏覽 8分鐘

           ·

          2022-04-26 07:45

          文?| 大東

          出品 | OSC開源社區(qū)(ID:oschina2013)

          無論是寫 API 文檔還是輸出技術博客,技術寫作已經成為各位程序員寫代碼之余最多的工作,趁手的文檔編輯器或許是僅次于 IDE 的吃飯家伙事兒。
          其實最早的計算機技術文檔可以追溯到 1944 年,美國哈佛大學 Mark 1 ASCC 自動序列控制計算機研發(fā)小組成員 Grace Hopper 為他們研發(fā)的這臺早期計算機撰寫了操作手冊。
          還有另一個說法稱“世界上第一本電子計算機手冊”是 BIAC 二進制自動計算機的操作和維護手冊,由 Joseph Chapline 于 1949 年編寫。該手冊創(chuàng)建了一系列計算機手冊標準,并成為后來誕生的許多其他計算機手冊的模板。
          盡管這兩個案例可以追溯到 1940 年代,但直到 1960 年代后期,隨著面向過程的編程語言在第三代微型集成電路計算機中的使用,才使得代碼注釋和技術文檔成為軟件開發(fā)的標配。
          也是從這一時期開始,為了統(tǒng)一文本在不同計算機軟硬件上的格式標準,GML、TEX、LaTex、HTML、Markdown 等標記語言相繼面世,這些標記語言將計算機中的文本以及文本相關的其他信息結合起來,展現(xiàn)出關于文檔結構和數(shù)據處理細節(jié)的計算機文字編碼,為計算機文本的格式制定了標準。這些標記語言也成為不同時期軟件工程師們撰寫開發(fā)文檔時必備的技能。
          其中,Markdown 作為最年輕的標記語言到被廣泛沿用至今,成為很多習慣純鍵盤操作的開發(fā)者們用于技術寫作的不二之選。

          為什么開發(fā)者喜歡 Markdown?

          今天流行的大部分開發(fā)者工具都支持 Markdown,包括 GitHub、Gitee、Trello、Slack 等。大部分開發(fā)者也會采用支持 Markdown 編輯器的開源工具來搭建自己的個人博客。
          然而在博客場景仍處于起步階段的 2000 年代初期,WordPress 和 TypePad 等建站平臺在編輯器功能上并沒有提供太多的便利,這時候的開發(fā)者寫文檔仍需使用 HTML 來處理文本格式,技術博主和 UI 設計師 John Gruber 便是其中的一員。雖然 Gruber 喜歡在線寫作和分享自己的技術內容,但他實在受夠了使用 HTML 格式化所有內容的麻煩。
          ▲ John Gruber
          受到純文本電子郵件通信美學的啟發(fā),在 Reddit 聯(lián)合創(chuàng)始人 Aaron Swartz 的協(xié)助下,John Gruber 于 2004 年 3 月 19 日推出了第一個版本的 Markdown。
          Markdown 相比 HTML 等富文本格式更加輕便,只包含分級標題、字體加粗、斜體、引用、添加代碼塊、插入圖片/超鏈等程序員群體常用的文檔功能,且格式非常簡單,可以實現(xiàn)排版+寫作同時進行,且無需使用鼠標點選調整格式,非常適合習慣了純鍵盤操作的程序員們。
          另一方面,Markdown 簡潔的語法非常容易被瀏覽器解析,這使得 Markdown 幾乎適用于任何 Web 場景,這也是其日后被廣泛用于代碼托管平臺 Readme、開源項目在線文檔、開發(fā)者個人博客等場景的重要原因之一。
          得益于這些專為技術文檔而生的優(yōu)秀特性,Markdown 很快在開發(fā)者群體中流行開來。

          始于 Markdown 的語雀

          目前,除了自建博客外,各類支持 Markdown 的寫作平臺已經成為了國內開發(fā)者首選的文檔和知識庫建立工具,例如 Notion、語雀、石墨文檔、印象筆記等。
          其中,語雀作為螞蟻集團內部孵化的項目,在開發(fā)者社區(qū)中收獲了不俗的口碑。據統(tǒng)計,在語雀最受歡迎的文檔插入功能卡片中,使用量排行第一的是圖片卡片,現(xiàn)在已經有 7100 萬個,而使用量排行第二的就是代碼塊,達到 2500 萬個,可見開發(fā)者群體在語雀用戶中的占比之大。
          來自語雀的研發(fā)工程師閻王告訴我們,語雀最初也是一名螞蟻的程序員利用業(yè)余時間開發(fā)的 Markdown 編輯器。
          2016 年,螞蟻金融云需要一個工具來承載它的文檔,負責這項工作的工程師利用業(yè)余時間,搭建了這個文檔工具,也就是語雀的雛形。項目的初期,沒有任何人員和資源支持,同時也是為了快速驗證原型,技術選型上選擇了最低成本的方案。其中,應用層客戶端選用了 React 技術棧,結合螞蟻開源的 Ant Design,并采用 CodeMirror 實現(xiàn)了一個功能強大、體驗優(yōu)雅的 markdown 在線編輯器。
          2017 年,隨著語雀得到團隊內部的認可,項目的目標已經不僅僅是金融云研發(fā)團隊的文檔工具,而是成為阿里所有員工的知識管理平臺。于是,語雀在面向技術人員 Markdown 編輯器之外,還向非技術創(chuàng)作者提供了富文本編輯器,并選擇了更“Web”的路線,在富文本編輯器中加入了公式、文本繪圖、思維導圖等功能。
          這一時期,語雀的前端編輯器從 codeMirror 遷移到 Slate。為了更好的實現(xiàn)語雀編輯器的功能,項目團隊內部 fork 了 Slate 進行深入開發(fā),同時也自定義了一個獨立的內容存儲格式,以提供更高效的數(shù)據處理和更好的兼容性。
          隨著編輯器越來越復雜,在 slate 的基礎上進行開發(fā)遇到的問題越來越多,語雀團隊最終還是走上了自研編輯器的道路,并基于瀏覽器的 Contenteditable 實現(xiàn)了富文本編輯器,通過 Canvas 實現(xiàn)了表格編輯器,通過 SVG 實現(xiàn)了思維導圖編輯器。
          自 2018 年正式對外提供服務以來,語雀團隊就采用編輯器自研,底層的服務全面上云的形式,通過 JavaScript 全棧進行研發(fā),以云服務的方式為企業(yè)級用戶和個人知識工作者提供知識創(chuàng)作和管理工具。

          開發(fā)者喜歡的編輯器因素

          閻王 —— 這位花名霸氣的技術小哥在寫作方面的經歷與開源中國的很多技術博主類似,除了是語雀研發(fā)團隊的一名開發(fā)者外,業(yè)余時間也是一個技術自媒體,用“小胡子哥”這個筆名寫了十多年的技術博客。
          “小胡子哥”最初在博客園上做內容分享,后來又購買云服務器自建博客,也曾將博客整體遷移到 GitHub 上,兜兜轉轉在 2016 年首次接觸到了語雀,成為了語雀的早期用戶。
          閻王介紹,自己日常的寫作會有三種狀態(tài):
          • 思考,一種是把腦子里面靈光乍現(xiàn)的內容記錄下來,這個時候對工具幾乎是沒有任何要求的,只要能輸入即可;

          • 整理,第二種狀態(tài)是整理思緒,其實寫一篇文章最復雜的工序就在這個環(huán)節(jié),我們需要把腦海中的內容和已有的內容做整合,讓零碎的知識產生結構和關聯(lián),在這個過程中,經常會用到一些繪圖工具、數(shù)據統(tǒng)計和分析工具;

          • 表達,將整理好的內容撰寫成文,在敲擊鍵盤的時候,會不斷地思考,假設我此時是一名讀者,我正在看這些文字,我的感受是怎樣的,不斷地嘗試換位思考,這樣才有可能寫出一篇別人愿意看的文章。

          對于大部分技術寫作者來說,需要的正是能滿足第二種狀態(tài)的編輯工具。以語雀為例,閻王認為語雀之所以能夠吸引開發(fā)者群體,得益于其產品設計在洞悉技術寫作的需求方面做得很好。
          首先是語雀的代碼塊功能。早期的語雀只是簡單的 Markdown 代碼塊渲染。經過迭代,語雀代碼塊在樣式和支持的語言上都進行了加強,支持近百種常見的編程語言樣式;此外還增加了代碼塊的命名、主題切換、高度調整、函數(shù)折疊等功能,能夠滿足絕大多數(shù)代碼展示的需要。
          語雀的畫板功能也非常好用,不僅支持文本繪圖,還結合了思維導圖和流程圖,提供非常豐富的繪圖元素,提供了快速制作技術架構圖的能力。
          利用語雀的開放接口,開發(fā)者可以把語雀上的博客同步推送到 GitHub 的個人倉庫:
          除此之外,語雀還有能全鍵盤操作的文檔編輯器、知識庫目錄、創(chuàng)作指數(shù)綠墻等等,這些都是對開發(fā)者群體來說非常友好的元素。
          最后值得一提的是,閻王還透露團隊計劃將語雀文檔編輯器的代碼開源,期望在社區(qū)的開放合作模式下,讓語雀編輯器變得更好更強。
          寫作對于每一個開發(fā)者來說都是非常好的習慣,能夠幫助我們實現(xiàn)終身學習的目標,而一款好用的文檔工具能夠幫助我們將所學所想建立成知識庫,并受益終生。
          “在程序員的日常里,不僅我們的代碼高并發(fā)地跑在機器上,腦子也是一樣的,每天我們都要處理非常非常多的事務,處理不過來怎么辦呢?這個時候就需要有一個信息的中轉站,控制一下信息流轉的速度,同時呢,在這個中轉站里面,把無效信息給剔除掉,然后分門別類地做好歸類,最后再交給大腦處理,這樣才能游刃有余地把事情一件一件做好。這個理念在語雀里也有很好的體現(xiàn)?!?/span>


          往期推薦

          竟然有一半的人不知道 for 與 foreach 的區(qū)別???


          SpringCloud 優(yōu)雅下線+灰度發(fā)布


          名校生都去哪些互聯(lián)網公司?




          有道無術,術可成;有術無道,止于術

          歡迎大家關注Java之道公眾號


          好文章,我在看??

          瀏覽 97
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  人人射人人草 | 日韩欧美网站 | 天堂a| 日本有码中文字幕 | 亚洲AV无码一区二区三区桃色 |