찾다
웹 프론트엔드CSS 튜토리얼Ellenty가있는 커뮤니티 중심 사이트 : 사이트 구축

Ellenty가있는 커뮤니티 중심 사이트 : 사이트 구축

이전 기사에서는 커뮤니티 중심 웹 사이트의 계획 단계를 살펴 보았습니다. 우리는 내 경험 구축 스타일 단계에서 사용자 제출 수용과 관련된 수많은 고려 사항에 대해 논의했습니다.

이제 코드에 뛰어 들자! 우리는 당신의 커뮤니티 (또는 개인) 웹 사이트를위한 기초 역할을하는 Eleventy 설정을 구축합니다.

시리즈:

  1. 기부금 계획
  2. 사이트 구축 (현재 기사)

이 기사는 다음과 같습니다.

  • 고도를 설정하고 개발 및 빌드 스크립트를 작성합니다.
  • 권장 구성 사용자 정의.
  • 사용자 정의 데이터를 정의하고 여러 데이터 소스를 병합합니다.
  • Nunjucks 및 Leltymenty Layout 체인으로 레이아웃 생성.
  • NetLify에 배포.

프로젝트 비전

사용자가 귀여움 경연 대회에서 경쟁하는 고양이와 개 사진을 제출하는 플랫폼을 상상해보십시오.

이 기사는 PET 제출에만 중점을 둡니다. 향후 개발을 위해 사용자 투표 (서버리스 기능으로 쉽게 구현)가 남아 있습니다. 사용자는 애완 동물의 프로필을 제출하여 홈페이지에서 임의의 고양이 대 임의의 개를 특징으로하는 매주 "배틀"을 생성합니다.

고도로 설정

npm init 사용하여 새 프로젝트를 초기화하여 시작한 다음 Eleventy를 설치하십시오.

 npm @11ty/elventy 설치

선택적으로 package.json 스크립트 섹션을 수정하십시오.

 "스크립트": {
  "개발": "Eleventy -서브",
  "Build": "Eleventy"
},

이를 통해 BrowserSync Hot Reloading ( npm run develop ) 및 생산 빌드 ( npm run build )로 개발할 수 있습니다.

효율적인 데이터 처리를 위해 fast-glob 설치하십시오.

 NPM 설치-사브 데브 패스트 글로브

디렉토리 구조

Eleventy는 입력 및 출력 디렉토리를 사용자 정의 할 수 있습니다. 프로젝트 루트에서 eleventy.js 만듭니다.

 module.exports = function (eleventyconfig) {
  반품 {
    dir : {
      입력 : "SRC",
      출력 : "공개"
    },
  };
};

애완 동물 데이터를 저장하기위한 pets 디렉토리를 만들고 catsdogs 하위 디렉토리로 세분화하십시오.

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

각 애완 동물의 데이터는 다음 스키마가있는 JSON 파일입니다.

 {
  "이름": "",
  "Petscolor": "",
  "좋아하는 음식": "",
  "PaRityToy": "",
  "Photourl": "",
  "소유자 이름": "",
  "소유자 와이터": "" "
}

CONTRIBUTING.md 파일 (또는 README.md )을 작성하여 제출 지침 및 데이터 스키마를 사용자에게 안내하십시오. favoriteFood , favoriteToyownerTwitter 선택 사항입니다. photoURL 보안 및 호스팅 이유를 위해 파일 업로드가 아닌 URL이어야합니다.

데이터 처리

_data 디렉토리에서 cats.js and dogs.js 만들려면 개별 애완 동물 파일을 배열로 결합합니다.

 // cats.js
const fastglob = 요구 사항 ( "Fast-Glob");
const fs = 요구 사항 ( "FS");

module.exports = async () => {
  const catfiles = fastglob ( "./ src/pets/cats/*. json", {
    CassenSitiveMatch : False,
  });

  고양이 = 새로운 set ();
  (고양이의 고양이) {
    const catdata = json.parse (fs.readfilesync (cat));
    cats.add (catdata);
  }

  반환 [... 고양이];
};

( dogs.js 는 비슷하며 "고양이"를 "개"로 대체합니다). 이 접근법은 병합 충돌을 최소화합니다.

데이터 출력 및 템플릿

pets/catspets/dogs 에 샘플 JSON 파일을 추가하십시오. src 디렉토리에서 index.njk 만들기 :

<h1 id="고양이"> 고양이</h1>

애완 동물 프로필 페이지와 페이지 매김

Pagination Front Matter ( cats.njk 의 예)가있는 src 디렉토리에서 cats.njkdogs.njk 만듭니다.

 ---
쪽수 매기기:
  데이터 : 고양이
  별칭 : 고양이
  크기 : 1
Permalink : "https://www.php.cn/link/543817ed62fa34e371bb29d4f7b603f"
---

이것은 각 애완 동물의 개별 페이지를 생성합니다.

레이아웃 및 계산 데이터

src/_includes 에서 base.njkpets.njk 만듭니다. base.njk{{ content | safe }} . layout: base.njk 프론트 물질에 index.njk . 또한 레이아웃 체인을 위해 layout: base.njk to pets.njk .

cats.njkdogs.njk 에서 eleventyComputed 사용하여 템플릿 변수를 공유합니다.

 ---
Eleventycomputed :
  제목 : "{{cat.name}}"
  Petcolor : "{{cat.petcolor}}"
  좋아하는 음식 : "{{cat.favoritefood}}"
  PaRitetoy : "{{cat.favoritetoy}}"
  PhotOurl : "{{cat.photourl}}"
  소유자 이름 : "{{cat.ownername}}"
  소유자 : "{{cat.ownertwitter}}"
---

애완 동물 데이터를 표시하려면 pets.njk 에 콘텐츠를 추가하십시오. layout: pets.njkcats.njk and dogs.njk .

NetLify에 배치

사이트를 NetLify에 배포하십시오. NetLify를 public 디렉토리에서 제공하도록 구성하고 npm run build 에서 MERGE를 실행하십시오. netlify.toml 파일은이 프로세스를 단순화 할 수 있습니다. 풀 요청에 대한 배포 미리보기를 활성화하십시오.

제출 수락

기여 가이드 라인을 검토하고 지점 보호 규칙을 설정하십시오. 제출 프로세스에는 포킹, 복제, JSON 파일 생성, 변경 커밋, 풀 요청 열기 및 병합이 포함됩니다.

결론

이는 자동 배포가있는 기능 사이트를 만듭니다. 추가 개선에는 이메일 뉴스 레터, 소셜 미디어 미리보기, 댓글 시스템 및 Netlify CMS가 포함됩니다. 전체 예제는 Github에서 사용할 수 있습니다.

위 내용은 Ellenty가있는 커뮤니티 중심 사이트 : 사이트 구축의 상세 내용입니다. 자세한 내용은 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

"웹의 힘은 보편적입니다. 장애에 관계없이 모든 사람의 접근은 필수적인 측면입니다."- Tim Berners-Lee

주간 플랫폼 뉴스 : CSS :: 마커 의사 요소, 사전 렌더링 웹 구성 요소, 사이트에 웹 멘션 추가주간 플랫폼 뉴스 : CSS :: 마커 의사 요소, 사전 렌더링 웹 구성 요소, 사이트에 웹 멘션 추가Apr 19, 2025 am 11:25 AM

이번 주에 Roundup : DatePickers는 키보드 사용자에게 두통, Fouc와 싸우는 데 도움이되는 새로운 웹 구성 요소 컴파일러를 제공하고 있으며, 마침내 스타일링 목록 항목 마커에 손을 대고 사이트에서 웹 커넥션을 얻는 4 단계입니다.

너비와 유연한 아이템을 만드는 것은 함께 훌륭하게 재생됩니다너비와 유연한 아이템을 만드는 것은 함께 훌륭하게 재생됩니다Apr 19, 2025 am 11:23 AM

짧은 답변 : Flex-Shrink 및 Flex-Basis는 아마도 당신이 찾고있는 것일 것입니다.

끈적 끈적하고 테이블 헤더를 배치하십시오끈적 끈적하고 테이블 헤더를 배치하십시오Apr 19, 2025 am 11:21 AM

당신은 ' t 포지션 : 스티커; 에이

주간 플랫폼 뉴스 : 검색 콘솔에서의 HTML 검사, 글로벌 스크립트 범위, Babel Env 추가 기본값 쿼리 추가주간 플랫폼 뉴스 : 검색 콘솔에서의 HTML 검사, 글로벌 스크립트 범위, Babel Env 추가 기본값 쿼리 추가Apr 19, 2025 am 11:18 AM

이번 주에 Web Platform News의 세계를 둘러싼 Google 검색 콘솔은 크롤링 된 마크 업을보다 쉽게 ​​볼 수 있습니다.

Indieweb 및 웹 협상Indieweb 및 웹 협상Apr 19, 2025 am 11:16 AM

Indieweb는 일입니다! 그들은 회의와 모든 것을 얻었습니다. 뉴요커는 심지어 그것에 대해 글을 쓰고 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.