Skip to content

carbon-bond/carbonbond

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

碳鍵

碳鍵是一個次世代的論壇。它在文章之間的交互作用、筆戰過程中劍拔弩張的感受、板塊統治集團的鬥爭功能上進行了史無前例的大幅強化。

諸君,準備好了嗎?

提高你的鍵能,把那些笨蛋嘴成渣吧!

特點

  • 文章有「結構」
    • 可設定一個分類的文章必須由哪些資訊構成
    • 例如「新聞」必須包含來源、記者、內文、日期四個欄位
    • 發文者必須按照結構填寫表單,格式正確才能發文成功
    • 欄位可以限制型別,如數字、日期、字數在一百字以上的文本......等等
  • 文章之間有多樣的鍵結關係
    • 作者可以畫出鍵結來表示文章是在批鬥/支持/懷疑另一篇文章
    • 一篇文章可同時跟多篇文章產生鍵結
    • 精美的圖形介面可顯示文章之間的關係
  • 外掛系統
    • 根據看板中的文章結構、鍵結,進一步客製化看板的介面
    • 外掛作者可製作外掛上傳至碳鍵的外掛商店
  • 政黨系統
    • 看板由執政黨管理,握有定義板內文章結構、鍵結的權限,並可制定以人來做後續仲裁的板規
    • 一個看板板可能有多個在野黨,在野黨可以在具備民意基礎的狀況下挑戰執政黨
    • 一個政黨由多個黨員組成
    • 黨員可指派成不同角色,擁有各自的權限
  • 即時通訊
    • 個人
    • 羣組
      • 頻道
  • 現代介面
    • 支援瀏覽器跟App
  • 支援 Markdown 標記語言
    • 也考慮設計碳鍵自己的標記語言

更多細節詳見碳鍵文件

建置

  • 後端:使用 Rust 語言開發。
    • 使用 cargo run 可啟動伺服器
    • 使用 cargo run -- --config-file FILE 指定設定檔
    • 使用 cargo run --bin dbtool 可管理資料庫
    • 使用 cargo run --bin prepare --features prepare 準備所有程式碼生成的檔案,包含:
      1. 幾丁前後端
      2. sqlx 離線文件
    • 設定檔
      • 預設使用 api-service/config/carbonbond.[MODE].toml,其中 MODE 為環境變數,可能的選項為 releasedevtest
      • 若前述檔案不存在,則使用 api-service/config/carbonbond.toml
      • 私密訊息,如 API KEY 等等,請放置於 api-service/config/secret 資料夾,並於設定檔中指定欲使用哪一個私密檔案
      • 更詳盡的說明請參閱 api-service/config/carbonbond.toml
  • 前端:使用 typescript + React 開發。
    • yarn 安裝套件
    • yarn dev 啓動前端伺服器,支援熱重載
    • yarn lint 檢查風格

更詳細的步驟請見 快速開始