雙語版php7.1文檔 for Dash

做爲一名死coder,天天最多見的動做就是查看各類API文檔,你必定也有過同時打開N個窗口(HTML、PDF、CHM),不停的在編輯器與文檔之間切換的感覺吧?怎麼說呢,其實我很討厭這種枯燥無味的動做,那麼如何才能提升效率,減小無用功呢?下面就給你們介紹一款很是好用的Mac小工具:Dash。php

官方用一句話就歸納了它的用途:Dash是一個API文檔瀏覽器( API Documentation Browser),以及代碼片斷管理工具(Code Snippet Manager)。你沒看錯,它就只有這兩個功能,但確實是程序員(至少對於我來講)最爲關心的特性,本身以前也用過了很多相似的工具,能夠絕不誇張地說,Dash是它們之中作的最好的一個!html

  1. 下載 關於下載我仍是推介官網下載吧(kapeli.com/dash)程序員

  2. 強悍的API文檔瀏覽、搜索功能 想必這個功能是你們最經常使用的了吧,天天要反覆查看、搜索那麼多的API細節,沒有一個好工具,單靠本身的雙手如何應付得來?窗口不停的切來切去,很煩啊!Dash採用集成單一窗口的方式,很好的解決了這個問題。看下面的截圖:編程

上圖即是Dash的API瀏覽器主界面:左側邊欄是各類編程語言以及框架(取決於你下載安裝了多少文檔集合)的導航大綱,點擊某個節點,右邊的內容區域就是文檔的詳細信息啦,很是直觀。也能夠在左上方的搜索框內經過輸入關鍵字,查找相關的API文檔,很是相似全文檢索的實現方式,Dash的響應速度很是快!關鍵是能夠同時查詢不一樣的語言、框架內容,實在是太方便了。看到這裏你也許要問了,這跟咱們日常切換到特定的文檔窗口(好比一個PDF或者一個CHM文件),再ctrl + f查找有什麼區別,不是畫蛇添足嗎?其實你錯了,Dash能夠經過快捷鍵來顯示、隱藏文檔窗口,它提供了配置界面以便用戶自行設置(我比較習慣alt+space,由於其餘軟件不多用到這個組合鍵):api

Dash自帶了豐富的API文檔,涉及各類主流的編程語言和框架,全列出來很嚇人的: ActionScript, Android, C++, Cappuccino, Cocos2D, Cocos3D, Corona, CSS, Django, Groovy, HTML, Java, JavaFX, JavaScript, jQuery, Kobold2D, Lua, MySQL, Node.js, Man Pages, Perl, PHP, Python, Ruby, Ruby on Rails, Scala, Sparrow, SQLite, Unity 3D, WordPress, XSLT, XUL瀏覽器

並且它的文檔庫採用了docset格式,高級用戶基於網站提供的教程,很容易就能自行添加其餘的擴充文檔,其實Dash在最初發布的時候,只支持不多的幾個文檔瀏覽,好像只有Java、HTML、CSS這些,是後來經過用戶不斷貢獻,以及做者及時的反饋,逐步壯大,才具有了如此普遍的語言、框架支持。要添加API文檔,打開軟件配置界面,切換到Docset選項卡便可看到全部內置的文檔列表,按須要自行下載便可(若是是本身製做的docset,雙擊便可導入Dash):php7

筆者剛接觸php沒多久,在dash中下載了一個php的文檔,只有英文版的,php做爲比較流行的腳本語言,文檔官網提供了多種語言版本,原本本身想在網上下載別人製做好的php中文文檔for dash,可下載下來的幾個,看了一下都不太滿意,本人有點完美主義,因而萌發了本身動手製做一個雙語版的。app

剛開始,參考了dash的官網關於製做docset的教程,仍是找不着思路。後來在網上繼續搜索教程,找到了一個日本網友的方法。框架

docset文件本質上就是一個文件夾,選中下載好的英文PHP.docset,右鍵顯示包內容,打開文件夾curl

繼續解壓tarix.tgz,又獲得一個PHP.docset,這難道是俄羅斯套娃嗎,繼續顯示包內容,上圖看一下目錄層次的結構

目錄的層次還真夠深的,dash本質上說就是一個離線的api文檔瀏覽器,內部就是一個safari瀏覽器,文檔本質上就是html,下圖是一個php的函數abs的頁面,右鍵能夠 inspect element(審查元素),

也能夠在瀏覽器中打開頁面:http://127.0.0.1:50154/Dash/atuxkowm/php.net/manual/en/function.abs.html

dash的原理就是給離線的html文件創建索引

咱們能不能保持原有的索引不變,僅僅只是替換目錄中的英文html爲中文html呢,通過測試是可行的。

思路可行,但工做量着實不小,最新版的英文文檔下有14888個html文件,怎麼樣才能弄到對應的中文html文件呢,其實php文檔官網已經提供了,

上圖中左邊的紅框是不包含用戶筆記版的多html文件,右邊紅框是包含用戶筆記的chm文件(能夠解壓成多個html文件)。細想一下都不太符合個人要求,我要的中文版必需要有用戶筆記,排版也要和英文版的一致,chm文件中的排版缺了麪包屑導航,並且解壓chm文件也很麻煩。

無心間查看了一下英文版的html源碼文件,發現了每一個html都有下面的註釋

<!-- Mirrored from php.net/manual/en/about.formats.php by HTTrack Website Copier/3.x [XR&CO'2014], Tue, 02 Oct 2018 07:42:58 GMT -->

搜索 HTTrack Website Copier 以後,才知道這是一個專門下載網頁離線到本地的一個工具,原來官方的php dash文檔是這麼搞出來的,我又興沖沖的研究這個離線下載的玩意,最後搞了好久,仍是放棄了,我本來只想下載中文的文檔,也許是我沒配置好,下載的中文目錄中竟然還下載了別的語言的版本,下載的時間遙遙無期,等不及。

後來本身琢磨了一下,根據html的文件名稱很容易推導出中文文檔的在線名稱,好比:function.abs.html的 地址就是:php.net/manual/zh/f…

我想到了一個idea,那就是遍歷英文文檔的目錄,獲得文件的名稱,而後根據推導的名稱下載文檔。 具體的下載方法就是寫一個php的腳本,用curl下載網頁。

經歷了一番調試、再調試的折騰後,也花了很長的時間,終於把中文文檔下載下來了。又遇到了新的問題,中文文檔裏面的連接不少都是指向php的,離線以後的是html文件,不匹配,還有樣式的連接仍是指向線上的,因而又花了一番功夫對中文文檔作了一些正則的匹配替換,改寫離線的樣式文件,最後對中英文的文檔都加上了相互的連接,製做成了雙語版的php dash文檔。

追求完美的我,其實最後仍是被戰勝了,由於有極少數的英文文檔沒有對應的中文文檔,那這個實際上是php官方的事情了,我也沒轍,那就這樣唄。

最後附上,我製做的 最新php7.1的雙語版dash 文檔的下載地址

相關文章
相關標籤/搜索