Let's Learn 11ty Part 2: 부분, 스타일링 및 이미지

15695 단어 ssgeleventywebdev
지난 기사에서 우리는 우리 사이트의 기초를 설정했습니다. 맨손이지만 유효한 사이트입니다. 이제 좀 더 멋지게 만들기 위해 더 추가할 예정입니다.

부분



부분 파일은 탐색, 바닥글과 같이 많이 변경되지 않는 사이트 전체에서 반복되는 정보/데이터를 포함하는 파일입니다.

이제 사이트를 좀 더 잘 구성할 때입니다. 내비게이션을 먼저 만들어 봅시다
  • 우리의 src 폴더에서 about.md 파일을 만들고 여기에 넣습니다.

  • ---
    layout: base
    title: "About"
    ---
    
    # About Page
    


  • 이제 _includes 폴더에서 부분 폴더를 만든 다음 그 안에 _navigation.njk 파일을 만듭니다.

  • <!-- _includes/partials/_navigation.njk-->
    <nav>
        <a href="/">Home</a>
        <a href="/about">About</a>
    </nav>
    


    Later on we will improve this navigation, but for now it's fine


  • 다음으로 이 탐색 파일을 base.njk

  •  <body>
      {% include "partials/_navigation.njk" %}
      <main> 
        {{content | safe}}
        </main>
      </body>
    
    


    We can repeat the same steps for the _footer.njk file



    서버를 실행하고 지금까지 우리가 무엇을 가지고 있는지 봅시다

    npm start
    





    스타일링



    이제 사이트를 좀 더 보기 좋게 만들어 보겠습니다. 글꼴로 시작합니다. 머리에 Google 글꼴을 추가합니다.

      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <link rel="preconnect" href="https://fonts.googleapis.com">
        <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
        <link href="https://fonts.googleapis.com/css2? 
         family=Sora:wght@300;400;500;600&display=swap" rel="stylesheet"> 
        <title>My Eleventy Site - {{title}}</title>
      </head>
    


    CSS 파일



    또한 스타일 변경 사항을 적용하려면 CSS 파일을 추가해야 합니다. 자산 폴더를 만들어 보겠습니다. 그 안에 css를 넣은 다음 style.css 파일을 넣습니다.

    /* src/assets/css/style.css*/
    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    
    html {
      scroll-behavior: smooth;
    }
    
    body {
      font-family: "Sora", sans-serif;
    }
    


    위는 내 CSS에 사용하는 일반적인 재설정입니다.

    그런 다음 head 태그에도 추가해야 합니다.

       <link rel="stylesheet" href="{{ '/assets/css/style.css' | url }}">
    


    모든 작업을 수행하고 사이트를 확인한 후 이상한 점을 발견하게 될 것입니다. 스타일이 적용되지 않습니다.

    사이트 파일이 생성되는 _site 폴더를 확인하면 거기에 CSS 파일이 없습니다.

    그런데 왜 그럴까요?

    패스스루 카피



    우리가 시작했을 때를 기억한다면 Eleventy가 여러 가지 템플릿 언어(사이트를 작성하는 방법)를 지원한다고 언급한 바 있습니다. 이러한 파일 형식을 사용하면 Eleventy가 자동으로 html로 변환합니다.

    CSS와 JavaScript는 이러한 언어의 일부가 아닙니다. 그들과 함께 Pass Through Copy라는 프로세스를 통해 해당 파일을 출력 디렉토리에 복사하도록 Eleventy에 실제로 지시해야 합니다.
    .eleventy.js 파일을 열고 다음과 같이 수정합니다.

    module.exports = function(eleventyConfig) {
      eleventyConfig.addPassthroughCopy("src/assets/css/style.css");
    
      return {
        dir: {
          input: "src",
          data: "_data",
          includes: "_includes",
          layouts: "_layouts",
        },
      };
    };
    
    


    NOTE: Any files that are not part of the template languages that you want to be present on the site will need to have a Pass Through Copy - that goes for images, local fonts, icons etc



    이제 사이트를 확인하면 스타일이 적용되고 있습니다.



    이제 스타일 시트에 더 많은 스타일을 추가할 수 있습니다.

    *,
    *::before,
    *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }
    
    html {
      scroll-behavior: smooth;
    }
    
    body {
      font-family: "Sora", sans-serif;
      line-height: 1.5;
    }
    
    a {
      text-decoration: none;
    }
    
    img {
      max-width: 100%;
      display: block;
    }
    
    nav {
      display: flex;
      justify-content: center;
      align-items: center;
    
      height: 3.5rem;
      width: 100%;
      background-color: black;
      color: lightgray;
    }
    
    nav > a {
      display: block;
      padding: 1rem 2rem;
      color: lightgray;
    }
    nav > a:hover {
      color: aqua;
    }
    
    main {
      max-width: 50rem;
      margin: 0 auto;
      padding: 3rem 2rem;
      min-height: 100vh;
    }
    
    main > h1 {
      margin: 2rem 0 0.5rem;
    }
    
    main > img {
      border-radius: 5px;
    }
    
    footer {
      background-color: black;
      color: lightgray;
      padding: 2rem;
    }
    
    





    이미지



    사이트에 이미지를 추가하여 너무 평범해 보이지 않도록 합시다.
  • 자산에 이미지 폴더를 만들고 여기에 원하는 이미지를 추가합니다
  • .
  • .eleventy.js에서 이미지 폴더에 대한 통과 복사본을 추가합니다.

  •  eleventyConfig.addPassthroughCopy("src/assets/images");
    


  • 우리의 index.md에 이미지 추가

  • ---
    layout: base
    title: Home
    ---
    
    ![hero image](assets/images/learn.png)
    
    # My Eleventy Site
    
    I am a site built with [Eleventy](https://www.11ty.io/).
    
    


    우리가 간다:




    더 많은 정보


  • 파이프 | {{content | safe }}{{ '/assets/css/style.css' | url }}에서 사용한 필터를 필터라고 하며 특정 정보를 렌더링하는 방법을 결정하는 데 사용합니다.
  • Eleventy의 모든 것과 마찬가지로 사이트 스타일을 결정하는 방법은 전적으로 귀하에게 달려 있습니다. 내가 한 것처럼 수동으로 작성하기로 선택한 경우 SASS를 사용하는 것이 좋습니다. whitep4nth3r의 사이트 스타일은 다음과 같습니다
  • .



    우리는 이번에 좋은 거래를 했습니다:
  • 탐색 및 바닥글을 추가했습니다
  • .
  • 사이트에 스타일을 추가하고 제대로 작동하는지 확인했습니다
  • .
  • 당사 사이트에 이미지를 추가하고 작동하는지 확인했습니다
  • .

    지금은:
  • 작업 저장소는 다음과 같습니다. https://github.com/Psypher1/learneleventy
  • 문서를 확인하십시오: https://www.11ty.dev/docs/
  • 불화에 참여: https://www.11ty.dev/blog/discord/



  • 읽어주셔서 감사합니다. 연결합시다!



    저의 작은 구석을 찾아주셔서 감사합니다. , Polywork

    좋은 웹페이지 즐겨찾기