讓我們來談談 Jamstack 的未來 — 加入我們

soupault

302 個星
16 個分岔
8 個問題
首頁
https://soupault.app
儲存庫
dmbaturin/soupault
語言
OCaml
授權條款
MIT
範本
HTML, Jingoo

基於元素樹重寫

Soupault 是一個自動化的 HTML編輯器,而不僅僅是一個產生器。它可以將 HTML 解析為元素樹,操縱它並保存到檔案。就像 DOM 操作,但沒有瀏覽器。

您可以將它用作網站產生器,並將不同的內容插入到「範本」——一個空白頁面。然而,它也可以作為手寫網站或另一個 HTML 產生器輸出的後處理器。

靜態二進制檔,可使用外掛擴充

Soupault 是一個單一的靜態二進制檔,沒有任何依賴項。預編譯的二進制檔適用於 Linux、Windows 和 macOS。

然而,它有一個內建的 Lua 直譯器,並提供一個類似於 JavaScript DOM API 的元素樹 API。外掛可以存取頁面元素樹和從頁面提取的中繼資料,因此您可以靜態地完成所有可以使用 JavaScript 完成的操作,甚至更多。

UNIX 式方法

Soupault 可以透過外部程式管道傳輸 HTML 元素的內容,並讀取輸出。您可以選擇使用該輸出替換原始元素,或只是將輸出新增到頁面。

例如,您可以使用 KaTeX 靜態渲染方程式,或使用您選擇的任何工具進行語法突顯。

您還可以為特定的檔案副檔名設定預處理器。例如,在解析和處理之前,透過您選擇的 Markdown 到 HTML 轉換器管道傳輸 .md 檔案。

沒有前言

Soupault 可以使用 CSS3 選擇器從頁面提取中繼資料,這符合微格式和網頁抓取程式庫的精神。您可以建立自己的內容模型,並告訴 soupault 要提取什麼。

然後,您可以使用內建的 Jingoo 範本處理器(語法類似於 Jinja2)或外部腳本將網站索引渲染為 HTML。您也可以將網站索引匯出為 JSON 以進行進一步處理。

內建功能

soupault 可以開箱即用的一些功能

  • 從頁面標題建立(完全靜態)ToC。
  • 將外部檔案或外部程式輸出插入到頁面中。
  • 建立 LaTeX 風格的註腳。
  • 新增麵包屑。

範例

此設定程式碼片段會將 includes/menu.html 的內容插入到每個具有該元素的頁面的 <div id="menu"> 內,除了 404.htmlsplash.html 之外

[widgets.navigation-menu]
  widget = "include"
  file = "includes/menu.html"
  selector = "div#menu"
  exclude_page = ["404.html", "splash.html"]
部署到 Netlify

尋找更多靜態網站產生器