html女神
用於創建 1999 年網站的極簡框架。
要求
- 可連接互聯網、文字編輯器和網頁瀏覽器的計算機
- 新專案管理
入門
- 打開終端
npm install -g @htmlgoddess/cli
這將安裝命令列實用程式。-
htmlgoddess create path/to/your/new/site
- 按照提示操作,您應該可以立即啟動並運行。
待辦事項
- 重構:隔離測試。
- 新增:“主機”指令。
- 新增:樣式選擇命令,允許使用者在建立後更改主題。
- 專長:拼字檢查器。
- feat:提交時觸發的自動提交鉤子。
- 專長:校對命令。
- 壯舉:“域”命令。
- 壯舉:可下載的可執行檔。
- 重構:將 CNAME 替換為 yaml 配置以進行託管。
- 任務:覆蓋
- 將“docs”轉換為可設定變數
- 任務:確保觀察者不會洩漏記憶體。
- bug:cli.action 在測試期間仍然輸出到控制台。
- 專長:圖形使用者介面
我不知道任何 HTML
沒關係。查看此影片以開始使用。
命令列選單
當你執行npm start
時,它會給你以下選項。
它是如何運作的
- 「src」資料夾中的檔案被編譯(列印)為「docs」資料夾中的靜態 HTML 檔案。
-
src/templates
夾包含模板。它們與內容資料夾一起編譯以產生靜態 HTML 頁面。 -
src/content
資料夾包含您的網站內容,這些內容保存在 HTML 檔案中,這些檔案是 HTML 程式碼區塊。 - 當您執行
npm run print
(或從終端選單中選擇 print )時,它會將您的內容和範本編譯為靜態 HTML 檔案並重新建立 docs 資料夾。 (注意:文件中的所有內容都會被覆蓋,因此僅將內容保存在 src 目錄中!) - 您可以透過從選單中執行“serve”命令來在本地測試您的網站。
- 當您準備好部署網站時,只需執行
npm run save && npm run publish
- 然後,您可以將您的 Web 伺服器指向“docs”,無論它是 apache、git 頁面、nginx 還是其他任何東西。
- 您可以添加任何針對純 HTML 元素的樣式表,它應該可以工作:)
範本
- 模板中的自閉合標籤(如
<head />
或<main />
將搜尋與相同名稱相符的模板檔案;帶有索引 html 的目錄(如main/index.html
或簡單的檔案main.html
- 標籤不必是標準 HTML。如果您在 templates 資料夾中建立模板 foo.html,則可以包含
<foo />
標記,它將替換 foo 的內容。 - 模板編譯是遞歸的,因此您可以在模板中使用模板,但是,巢狀模板必須是包含在父模板內或與其相鄰的檔案。否則它只會被忽略。
-
<content/>
標記很特殊,它將引入與檔案同名(帶有 dir)的模板或主模板('templates/index.html)。 - 當您在內容目錄中建立所需的頁面。與之相關的目錄將以相同的路徑顯示在您的網站中。此結構允許自組織資料夾和 URL。
約束條件
- 沒有JS
- 除了基本的 href 等之外沒有屬性。
- 沒有課。這允許您添加任何針對 vanilla css 的樣式表
- 沒有 SASS/SCSS/LESS。對於簡單的 HTML 元素來說這不是必要的
- 沒有 React、Angular 或其他任何東西。
- 或者不,你可以破解任何你想要的東西。
哲學
HTML 的設計很簡單,適合一般人在網路上創作和消費東西。如今的網路非常棒,但也變得相當複雜,讓很多人落後了。該 CMS 回歸基礎,為人們提供一種自由、輕鬆地表達自己的方式。
- 該框架試圖盡可能利用現有技術和標準。
- HTML 用於一切(如 HTML 女神所命令的),而不是專有的模板標籤和其他特殊語法。模板系統搜尋自閉合 HTML 標籤並用關聯的模板或內容替換它們。
- 檔案系統可用於尋找/命名範本和 url 路由。
- Git 與內容和模板中的 HTML 檔案一起充當 CMS 的實際資料庫。
- 該網站「列印」到「docs」資料夾,然後「發佈」到 git,您可以在其中設定 github 頁面。它與 Web 伺服器無關,因此您實際上可以將 docs 資料夾中的檔案放在您想要的任何位置,並將 Web 伺服器指向它們。
- 標籤不需要類別或屬性。這使得新的主題可以無縫地插入。
- 不鼓勵使用 JavaScript,因為它不應該是不必要的,儘管框架中沒有任何內容阻止您使用它。
- 你可以忽略我剛剛寫的所有內容並做你想做的事。這是網路!
常見問題
- 依賴關係表現得很奇怪:
Lerna 在幕後做了一些事情來交叉連結依賴關係。如果您安裝了新模組並且停止工作,請嘗試從根目錄使用lerna bootstrap
。 - 測試目錄未清理。如果測試失敗,可能會阻止測試目錄的清理。在這種情況下,執行
npm run clean-test-dir
這將手動刪除它。
貢獻
- 在 packages/cli 中執行測試以確保一切正常
npm run test
- 提交對 mono 存儲庫的更改
npm run commit
並按照提示操作 - lernapublish --force-publish 這將發佈到 NPM 並將標籤推送到 git