搜尋
首頁web前端css教學一個由社區驅動的站點,高度:建立該網站

一個由社區驅動的站點,高度:建立該網站

在上一篇文章中,我們探索了社區驅動網站的計劃階段。我們討論了接受用戶提交的眾多注意事項,這些因素是從我的經驗建築風格階段中汲取的。

現在,讓我們潛入代碼!我們將建立一個高高的設置,為您的社區(或個人)網站提供基礎。

系列:

  1. 計劃捐款
  2. 建立網站(當前文章)

本文涵蓋:

  • 設置高度並創建開發和構建腳本。
  • 建議的配置自定義。
  • 定義自定義數據並合併多個數據源。
  • 使用Nunjucks創建佈局和高度的佈局鏈條。
  • 部署到Netlify。

項目願景

想像一個平台,用戶在其中提交貓和狗的照片,參加可愛比賽。

本文僅關注寵物提交;用戶投票(易於使用無服務器功能實施)留下來供將來開發。用戶提交寵物的個人資料,每週產生一個“戰鬥”,其中包含隨機貓與主頁上的隨機狗。

高度設置

首先使用npm init初始化一個新項目,然後安裝Eleventy:

 NPM安裝 @11ty/升高

可選,修改package.json腳本部分:

 “腳本”:{
  “開發”:“高度 - 服務”,
  “構建”:“高度”
},,

這可以通過Browsersync Hot Rodading( npm run develop )和生產構建( npm run build )進行開發。

安裝fast-glob以進行有效的數據處理:

 NPM安裝 -  save-dev fast-Glob

目錄結構

高架允許自定義輸入和輸出目錄。在項目根部創建eleventy.js

模塊。 Exports= function(leventyConfig){
  返回 {
    dir:{
      輸入:“ SRC”,
      輸出:“公共”
    },,
  };
};

創建一個pets目錄來存儲寵物數據,進一步細分為cats dogs子目錄:

 <code>pets/ cats/ dogs/</code>

每個寵物的數據將是一個帶有以下模式的JSON文件:

 {
  “姓名”: ””,
  “ petcolor”:“”,
  “最愛食品”:“”,
  “ FairiteToy”:“”,
  “ photourl”:“”,
  “ ownername”:“”,
  “ ownertwitter”:“”
}

創建一個CONTRIBUTING.md文件(或README.md ),以指導用戶發布提交指南和數據架構。請注意, favoriteFoodfavoriteToyownerTwitter是可選的。出於安全性和託管原因, photoURL應該是URL,而不是文件上傳。

數據處理

_data目錄中創建cats.js and dogs.js以將單個PET文件組合到數組中:

 // cats.js
const fastglob = require(“ fast-glob”);
const fs = require(“ fs”);

module.exports = async()=> {
  const catfiles =等待fastglob(“ ./ src/pets/cats/*。json”,{
    casesEnsitiveMatch:false,
  });

  令Cats = new Set();
  for(讓貓貓的貓){
    const catdata = json.parse(fs.ReadFilesync(cat));
    cats.add(catdata);
  }

  返回[...貓];
};

dogs.js是相似的,用“狗”代替“貓”)。這種方法最大程度地減少了合併衝突。

數據輸出和模板

將一些樣本JSON文件添加到pets/catspets/dogs中。在src目錄中創建index.njk

<h1 id="貓">貓</h1>

寵物檔案頁面和分頁

src目錄中創建cats.njkdogs.njk ,並使用分頁前物質( cats.njk ):

 ---
分頁:
  數據:貓
  別名:貓
  尺寸:1
永久鏈接:“ https://www.php.cn/link/543817ED62FA34E371BB2229D4F7B603F”
---

這為每個寵物生成單獨的頁面。

佈局和計算數據

src/_includes base.njkpets.njk中創建。 base.njk提供HTML樣板{{ content | safe }} 。添加layout: base.njk Front物質到index.njk 。還將layout: base.njk添加到pets.njk中,以進行佈局鏈。

使用cats.njkdogs.njk中的eleventyComputed分享模板變量:

 ---
高度計算:
  標題:“ {{cat.name}}”
  petcolor:“ {{{cat.petcolor}}”
  fairmyfood:“ {{{cat.favoritefood}}”
  FairiteToy:“ {{{cat.favoriteToy}}””
  photourl:“ {{{cat.photourl}}”
  ownername:“ {{cat.ownername}}”
  ownertwitter:“ {{{cat.ownertwitter}}”
---

將內容添加到pets.njk中以顯示PET數據。添加layout: pets.njkcats.njkdogs.njk

部署進行Netlify

部署網站以進行Netlify。配置NetLify從public目錄中使用,並在合併上運行npm run buildnetlify.toml文件可以簡化此過程。啟用拉動請求的部署預覽。

接受提交

審查貢獻指南並製定分支保護規則。提交過程涉及分叉,克隆,創建JSON文件,進行更改,打開拉請請求和合併。

結論

這將創建一個具有自動部署的功能站點。進一步的增強功能包括電子郵件新聞通訊,社交媒體預覽,評論系統和Netlify CMS。完整的示例可在GitHub上找到。

以上是一個由社區驅動的站點,高度:建立該網站的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
有點提醒您偽元素是孩子,有點。有點提醒您偽元素是孩子,有點。Apr 19, 2025 am 11:39 AM

這裡有一個帶子元素的容器:

菜單具有'動態命中區域”菜單具有'動態命中區域”Apr 19, 2025 am 11:37 AM

飛翔的菜單!您需要在第二個菜單中實現懸停事件以顯示更多菜單項的菜單,即您在棘手的領域中。一方面,他們應該

通過Webvtt改善視頻可訪問性通過Webvtt改善視頻可訪問性Apr 19, 2025 am 11:27 AM

“網絡的力量在於其普遍性。每個人的訪問無論殘疾是一個重要方面。” - 蒂姆·伯納斯 - 李

每周平台新聞:CSS :: Marker偽元素,預先渲染的Web組件,向您的網站添加Webmention每周平台新聞:CSS :: Marker偽元素,預先渲染的Web組件,向您的網站添加WebmentionApr 19, 2025 am 11:25 AM

在本週的綜述中:datepickers正在讓鍵盤用戶頭痛,一個新的Web組件編譯器,有助於與Fouc進行戰鬥,我們終於獲得了造型列表項目標記,以及在您的網站上獲得網絡攻擊的四個步驟。

使寬度和靈活的物品一起玩得很好使寬度和靈活的物品一起玩得很好Apr 19, 2025 am 11:23 AM

簡短的答案:您可能要尋找的是彈性折射和彈性基礎。

位置粘性和桌子標頭位置粘性和桌子標頭Apr 19, 2025 am 11:21 AM

您可以位置:粘性;一個

每周平台新聞:HTML在搜索控制台,全局腳本範圍中的HTML檢查,Babel Envs添加默認查詢查詢每周平台新聞:HTML在搜索控制台,全局腳本範圍中的HTML檢查,Babel Envs添加默認查詢查詢Apr 19, 2025 am 11:18 AM

在本週的Web平台新聞世界中,Google搜索控制台可以更輕鬆地查看爬行的標記,我們了解到自定義屬性

Indieweb和網絡企業Indieweb和網絡企業Apr 19, 2025 am 11:16 AM

Indieweb是一回事!他們將舉行會議和一切。紐約客甚至在寫這件事:

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。