Elytre 是一個從目錄檔案建立一個有搜尋引擎的無伺服器線上書店的工具。
Elytre 仍處於早期開發階段,在該階段將其用於生產是不明智的。在 1.0 發布之前(希望在 2021 年),預計會出現重大更改、奇怪的錯誤、損壞的測試和缺少的文件。
要求:
節點 v14.15+
紗
為您的專案建立一個空目錄
初始化紗線: yarn init
加鞘翅: yarn add --exact elytre
將start
和build
腳本新增至 package.json 中:
{ "scripts": {"start": "elytre start","build": "elytre build" } }
為了成功建立您的鞘翅站點,您的專案目錄將至少需要三個檔案:
指定網站資訊和設定的site.yaml
檔案(請參閱下方的網站設定檔規格)
描述您的圖書目錄的catalog.yaml
檔案(請參閱下面的目錄檔案規格)。
用於自訂網站外觀的styles.css
樣式表(請參閱下面的樣式表檔案規範)。
或者,您可以新增到您的專案目錄:
包含資源的public
目錄,這些資源將複製到建置目錄,並且可以從您的styles.css
或site.yaml
檔案中引用
包含封面圖片的covers
目錄。圖片檔案名稱必須符合以下模式: {ean}.jpg
(例如9781234567890.jpg
),且圖片檔案名稱中的 ean 必須與目錄中所述的產品的 ean 相符。
包含使用 MDX 格式的自訂頁面pages
目錄。頁面檔案名稱必須符合以下模式: {slug}.mdx
,其中slug
將用於自訂頁面 url。 about.mdx
檔案將在/pages/about
中提供。 MDX 是 Markdown 格式的擴展,支援 JSX 並允許匯入 React 元件。
透過在專案目錄中新增site.yaml
檔案來自訂網站的配置。
# 網站的標題,顯示在網站的標頭和瀏覽器的選項卡標題中:Les Éditions Paronymie# 網站的基本URL,不帶尾部斜杠baseUrl: https://paronymie.elytre.app# 網站的菜單菜單:# 選單的插槽可以是標題、導覽或頁腳 頁眉: 頁尾: ... nav:# 選單包含帶有標籤(文字)和連結(url)的條目清單 - 標籤:關於連結:/pages/about- 標籤:聯絡人連結:/contact/
透過在專案目錄中新增catalog.yaml
檔案來自訂產品目錄。
global: # 全域屬性應用於所有產品 buyLink: https://www.librairiepartenaire.com/buy/:eanproducts: # 一個產品 - ean: 9781234567890標題: Chaussons d'ours作者: Laetitia Manicon貢獻者: - 姓名:Claude Monetrole:封面藝術家# 或「作者」或「翻譯者」或「攝影師」發布日期:2021-01-04 頁數:641originalLanguage:en # 或「fr」或「de」backCoverText:| # Markdown 格式 *« Lorem ipsum dolor sat amet, consectetur adipiscing elit。 »* Vivamus pharetra 位於 Tortor nec cursus。 Proin accumsan sagittis 騷擾。 Suspendisse euismod dolor quis egestas vulputate。 Maecenas et nisl nec dui ullamcorper aliquam nec aterat。存在於 nunc elit 中。 Nam metus ante, ultrices sat amet lacinia non, feugiat vitae ligula。 Mauris sollicitudin rutrum justo egestas dignissim。在我們的祖國、在希梅內奧斯的概念中,階級是有默契的社會關係的。 Morbi euismod justo nec ipsum dapibus varius。 現在交流很順利。菜豆 (Phasellus metus eros)、dignissim eu ex consectetur、aliquam rutrum Massa。 Ut pharetratellus totortor,eu dictum felis euismod ac。 Nullam ut Accumsan risus,請坐 amet consectetur leo。 Nunc tristique posuere eros,sit amet condimentum neque consequat eu。 Proin sollicitudin、lacus eleifend ullamcorper laoreet、turpis ante aliquet arcu、sit amet consectetur libero libero in dolor。 Quisque sodales ipsum eget lectus cursus pharetra。 Nam eu eleifend ipsum。 額外: - type: youtube # 將嵌入的 youtube 影片加入到產品的頁面href: https://www.youtube.com/watch?v=dQw4w9WgXcQreviews: - 文本:Un très grand Talent de la littérature poire.作者:Mélodie來源:Librairie L'Arbre à Nèfles – ParissourceUrl:https://www.arbreanefles.com # 另一種產品 - ean: 9781234567811標題: Sous-sol作者: Matt Yassenar
透過在專案目錄中加入styles.css
檔案來自訂網站的外觀。
.ElytreSite { /* 這是您所有網站的全域包裝。這裡可以設定頁面寬度、邊距等*/} .Header { /* 網站標題如何顯示 */} .Header .Menu { /* 標題選單如何顯示 */} .Header .Menu .MenuEntry { /* 單一條目如何在標題選單中顯示 */} .Product { /* 產品如何顯示 */} .Product .Product-cover-image { /* 產品封面圖片如何顯示 */} .Product .Product-infos { /* 產品資訊(標題、作者、ean)如何顯示 */} .Product .Product-title { /* 產品標題的顯示方式 */} .ProductList { /* 產品清單如何顯示 */} .ProductList .Product { /* 產品在產品清單中的顯示方式 */} .HomeView .ProductList .Product { /* 產品在主頁清單中的顯示方式 */} .ProductView .Product { /* 產品在單一產品頁面上的顯示方式 */} .Error404View .Error404View-title { /* 標題如何顯示在 404 錯誤頁面上 */} .Error404View .Error404View-reason { /* 如果在 404 錯誤頁面上提供,原因如何顯示 */} .Footer { /* 網站頁腳如何顯示 */} .Footer-powered-by { /* 頁腳中的「Powered by Elytre」文字可以隱藏(請不要!)或在此處變得更加謹慎 */}
$ 紗線構建
這將在build
目錄中建立您的生產網站,準備部署。您可以使用任何 Web 伺服器或靜態網站主機來提供此目錄。
$ 紗線開始
這將啟動本地網路伺服器進行開發。開啟 http://localhost:1854/ 在瀏覽器中查看。如果您編輯專案目錄中的文件,該頁面將自動重新載入。
此儲存庫中的 Lint 程式碼如下:
$ 紗線絨毛
使用以下命令在此存儲庫中執行測試:
$ 紗線測試
Elytre 由兩個主要部分組成:
template/src
:模板 React 站點,與使用者的自訂檔案合併以建立最終的 elytre 站點
build/src
:一個節點工具,使用 React 模板和使用者的自訂檔案建立最終的鞘翅站點
兩者都是用 Typescript 寫的,需要先轉譯才能使用。
$ 紗線構建
在將包發佈到 npm 之前,文件會經過 linting、測試和轉譯。
在開發過程中,可以在模板檔案發生變更時對其進行監視和轉譯:
$ 紗線開發