[smartcontrct] 如何讓你的 github project 的語言欄位顯示 solidity

in #ethereum7 years ago

假如你使用 Truffle 開發 smart contract, 那麼 上傳 Github 後你就會發現你的 project是被歸類為 javascript. 這是為什麼呢 ? 這是因為 solidity 的檔名就是 .sol。這個 github 不會認為他是 solidity。 github 使用 linguist 這個套件偵測語言。 簡單的說 linguist 這個套件認為 sol 這副檔名太通用所以不會認定他是 solidity。 詳情可以看 solidity 上的 issue討論。
根據討論解決方法有兩種,這邊會採用就簡易法 - 也就是使用 .gitattributes 檔來解決。你可以參考 gitattribute Document Link。但接下來我直接就把解決步驟寫出。

  1. 在你的 truffle project 裡創建一個新檔案叫 .gitattributes
  2. 參考我的 .gitattributes 內容加到你創建的檔案裡
# Source files
# ============
*.sol linguist-language=Solidity
*.js        text

  1. commit 然後上傳到 github
  • 在 project 頁面你會看到正確的語言分佈。原本只有 javascript 而已
  • 在 project 列表中你會看到你的 smart contract 顯示 solidity