搜尋
首頁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
Flexbox vs Grid:我應該學習兩者嗎?Flexbox vs Grid:我應該學習兩者嗎?May 10, 2025 am 12:01 AM

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

軌道力學(或我如何優化CSS KeyFrames動畫)軌道力學(或我如何優化CSS KeyFrames動畫)May 09, 2025 am 09:57 AM

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSS動畫:很難創建它們嗎?CSS動畫:很難創建它們嗎?May 09, 2025 am 12:03 AM

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For

@KeyFrames CSS:最常用的技巧@KeyFrames CSS:最常用的技巧May 08, 2025 am 12:13 AM

@keyframesispopularduetoitsversatoryand and powerincreatingsmoothcsssanimations.keytricksinclude:1)definingsmoothtransitionsbetnestates,2)使用AnimatingMultatingMultationMultationProperPertiessimultane,3)使用使用4)使用BombingeNtibalibility,4)使用CombanningWiThjavoFofofofoftofofo

CSS計數器:自動編號的綜合指南CSS計數器:自動編號的綜合指南May 07, 2025 pm 03:45 PM

CSSCOUNTERSAREDOMANAGEAUTOMANAMBERINGINWEBDESIGNS.1)他們可以使用forterablesofcontents,ListItems,and customnumbering.2)AdvancedsincludenestednumberingSystems.3)挑戰挑戰InclassINCludeBrowsEccerCerceribaliblesibility andperformiballibility andperformissises.4)創造性

使用捲軸驅動動畫的現代滾動陰影使用捲軸驅動動畫的現代滾動陰影May 07, 2025 am 10:34 AM

使用滾動陰影,尤其是對於移動設備,是克里斯以前涵蓋的一個微妙的UX。傑夫(Geoff)涵蓋了一種使用動畫限制屬性的新方法。這是另一種方式。

重新訪問圖像圖重新訪問圖像圖May 07, 2025 am 09:40 AM

讓我們快速進修。圖像地圖一直返回到HTML 3.2,首先是服務器端地圖,然後使用映射和區域元素通過圖像上的單擊區域定義了可單擊區域。

DEV狀態:每個開發人員的調查DEV狀態:每個開發人員的調查May 07, 2025 am 09:30 AM

開發委員會調查現已開始參與,並且與以前的調查不同,它涵蓋了除法:職業,工作場所,以及健康,愛好等。 

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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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