11ty Second 11ty: 전역 데이터 파일(JS 및 JSON)
6881 단어 11tyjamstackjavascript
110개의 JSON 데이터 파일
이번 에피소드에서는 글로벌 데이터 파일에 대해 이야기하겠습니다. 특히 JSON 데이터 파일. 자, 110초, 가자!
11ty는 the data cascade 이라는 개념을 가지고 있고, 이 영상에서는 자세히 다루지 않겠지만 글로벌 데이터 파일이 가장 낮은 우선순위라는 점을 언급할 필요가 있습니다. 구성 API를 사용하면 API가 해당 데이터를 덮어씁니다.
시작하려면 베어본 11ty 사이트가 있습니다. 우리가 가진 것은 색인 파일뿐입니다. 전역 데이터를 추가하려면 파일을 저장할 디렉터리가 필요합니다. 기본값은
_data
디렉토리입니다.우리는 그것과 json 데이터 파일을 만들 것입니다. 파일 이름은 템플릿의 데이터에 액세스하는 데 사용할 키가 됩니다. 이 경우 이름을
siteSetting.json
로 지정합니다.우리는 매우 간단한 사이트 설정 데이터 파일을 만들 것입니다. 나중에 여러 템플릿에서 원할 수 있는 전역 정보입니다.
그런 다음 여기에 몇 가지 데이터와 함께 JSON 개체를 넣습니다. 여기서는 개체를 사용하고 있지만 유효한 JSON은 배열을 포함하여 작동합니다.
{
“name”: “Data Example”,
“description”: “A data example site for 11ty second 11ty”
}
이것이 저장되면 인덱스 템플릿(또는 다른 템플릿... 전역적입니다. 그렇죠?)에서 액세스할 수 있습니다.
<!DOCTYPE html>
<html lang="en">
<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">
<title>Document</title>
</head>
<body>
<h1>11ty Second 11ty: Data Example</h1>
{{ siteSetting.name }}
{{ siteSetting.description }}
</body>
</html>
11ty JS 데이터 파일로 빌드 시 동적 콘텐츠
이제 이것은 정적 콘텐츠에 대해 작동하지만 빌드당 일부 동적 콘텐츠를 추가하려면 어떻게 해야 합니까? 바닥글에 저작권 날짜를 말하십시오.
Javascript 데이터 파일로 그렇게 할 수 있습니다.
siteSetting.json
파일을 복사하여 settings.js
파일로 이동해 보겠습니다.여기에서
module.exports
를 사용하도록 다시 포맷하고 이 개체를 내보냅니다.이제 JavaScript의 내장 Date 메서드를 사용하여 간단한 저작권 속성을 추가하겠습니다. 전체 날짜 시간을 생성하고 템플릿에서 형식을 지정합니다.
module.exports = {
"name": "settings",
"description": "Settings for the bot",
"date": new Date(),
}
그런 다음 이것을
index.html
파일에 추가합니다.<body>
<h1>11ty Second 11ty: Data Example</h1>
{{ siteSetting.name }}
{{ siteSetting.description }}
{{ settings.date | date: "%Y" }}
</body>
날짜는 괜찮지만 다른 API를 눌러 콘텐츠를 얻으려면 어떻게 해야 할까요? JS 데이터 파일은 간단한 경우에도 잘 작동합니다.
먼저 새 데이터 파일을 만듭니다:
pokemon.js
여기서는 학습 목적으로 아주 간단한 API인 PokeAPI에 API 호출을 할 것입니다. 이 경우 Axios(설치되어 있는지 확인)를 사용하지만 node-fetch 또는 최신 노드 내장 가져오기도 작동합니다.
이번에는 함수를 내보내고 액세스하려는 항목의 배열을 반환합니다. 이 경우. 응답에는
data
배열이 있는 results
개체가 있습니다.const axios = require('axios');
module.exports = async function () {
// pokemon api call
const response = await axios.get('https://pokeapi.co/api/v2/pokemon/?limit=151');
const pokemon = response.data.results;
return pokemon
}
<ol>
{% for pokemon in pokemon %}
<li>{{ pokemon.name }}</li>
{% endfor %}
</ol>
이것은 데이터 파일 사용의 기본 사항일 뿐입니다. 배열, 중첩, 외부 API 호출, 데이터 변환 등 JSON 또는 자바스크립트에서 수행할 수 있는 모든 작업을 이러한 파일에서 수행할 수 있습니다.
Reference
이 문제에 관하여(11ty Second 11ty: 전역 데이터 파일(JS 및 JSON)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/brob/11ty-second-11ty-global-data-files-js-and-json-566o텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)