關於Ldoc


  • ldoc是在lua中很方便的注釋文檔生成工具,比luadoc更強大,並且其邏輯是由lua代碼編寫,方便自己修改和理解源碼
  • ldoc依賴luafilesystem和pl庫
  • luafilesystem在 https://github.com/keplerproject/luafilesystem,是用c編寫的跨平台的文件操作庫,其源碼可作為c導出到lua的模范來學習,這里需要將其編譯成so
  • pl庫在 https://github.com/stevedonovan/Penlight,是用純lua編寫的一系列lua工具庫,有興趣可以學習學習,這里需要將pl目錄放到ldoc同層目錄
  • 關於ldoc,luafilesystem,pl都支持通過lua模塊管理工具luarocks快捷安裝,luarocks有點類似nodejs的npm
  • 關於文檔如何生成可以參考:http://stevedonovan.github.io/ldoc/,另外該網頁文檔也是通過ldoc生成的
  • 在項目中可能需要根據實際項目情況對ldoc源碼進行修改,這里使用ldoc版本為 1.4.3:
    • html頁面左邊部分寬度因為實際項目的多層次目錄,模塊名可能很長,需要增加寬度,其css代碼在html/ldoc_css.lua文件中,163行navigation的width和197行content的margin-left值可同時修改為24em,然后去除199行content的width: 700px,這樣整個頁面顯示將更寬闊
    • html/ldoc_ltp.lua中部分可加上自定義的標識
    • doc.lua在322-324行做了處理,當當前的函數的模塊和文件的模塊名一致時,則重新設置item.name為funcname,然后在后面的346行對此種情況進行特殊處理,解析然后自動加上模塊和間隔符,但這種情況下實際破壞了真實的函數結構,將其統一與模塊名相同的函數全設為" : ",從而在幫助文檔中便不知到底是" "方法還是" "方法,所以這里注釋掉這三行代碼
      -- ifthat's the mod_name, then we want to only use 'foo'
      -- if mod == this_mod.mod_name andthis_mod.tags.pragma ~= 'nostrip' then
      --    item.name = fname
      --end
    • 在builtin/globals.lua設置了在線的lua幫助文檔路徑,這里可以自助下載離線文檔,然后修改路徑,另外5.3發布,如有需求參照5.1和5.2也可加上5.3的manual 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM