Eleventy, Netlify 및 IFTT를 사용하여 블로그 게시물 예약

제 개인 사이트를 Jekyll에서 Eleventy로 이전하는 것은 많은 장점이 있습니다. 더 좋은 구축 속도, 파이프라인에 루비와 자바스크립트를 혼합하지 않고 대량의 세수 감면을 받았습니다.나는 여전히 Jekyll을 좋아한다. 왜냐하면 정적 사이트 생성기에 들어가게 하기 때문이다. 그러나 Eleventy는 이미 나의 새로운 기본이 되었을 것이다.
내가 가장 좋아하는 장점 중 하나는 미래의 게시물을 어떻게 배치하는가이다.내가 시도한 어떤 Jekyll 솔루션도 일치하지 않고 가장 많고 지나치게 복잡한 템플릿 논리도 있다.최악의 경우 나는 제때에 새로운 블로그 게시물nearly got my loved ones killed and/or caught in an authoritarian hellscape ruled by French scientists을 보내려고 시도했다.
그러나 NetlifyIFTTT (If This Than That)의 도움으로 Eleventy는 유지보수나 반오토피아의 해결 방법을 피할 수 있도록 도와주었다.나는 이것이 다른 레저 블로거와 자유 투사들의 흥미를 불러일으킬 것이라고 믿기 때문에 나는 이 블로그를 썼다!

미래의 게시물 필터링


첫 번째 단계는 간단합니다. 앞으로 Eleventy가 게시되는 것을 어떻게 방지합니까?
내가 좋아하는 Jekyll의 가장 기본적인 특성 중 하나는 구축 과정과 연결되는 것이다.사용자 정의 컬렉션, 태그, 필터 및 기타 기능을 추가할 수 있습니다.그래서 나는 사용자 정의'미래를 숨긴 블로그 게시물'모집을 만들어 보았다.
이것은 내가 블로그 게시물을 수집하고 구성하는 기본 JavaScript 설정입니다.
eleventyConfig.addCollection("posts", function (collection) {
  return collection.getFilteredByGlob("./posts/*.md")
    .reverse();
});
간단한 블로그post 대상 그룹을 되돌려줍니다.자바스크립트에서 수조는 원하지 않는 항목을 추출하는 내장된 방법이 있습니다: 방법filter!내가 필요로 하는 것은 필터 함수를 작성하고 전송하는 것뿐입니다. 이 함수는 미래의 댓글을 삭제할 수 있습니다.
다음은 제가 시작한 내용입니다. 필터는 post 잠재적인 블로그 게시물이 있는지 확인해야 합니다.
const hideFutureItems = (post) => {
  let postDate = post.date;
  // ...what else?
}
postDate UTC 형식의 타임스탬프입니다.10월 23일 예정된 활동의 값은 2020-10-23T00:00:00.000Z 입니다.나는 이 값을 자세히 연구한 결과 JavaScript's Date Reference로 만든 것을 발견하였다.이것은 언어에 내장된 시간 단위를 관리하는 방법 중의 하나다.
나는 문서를 보고 getTime()라는 방법을 발견했다.그것은 1970년 1월 1일(the standard beginning Unix timestamp for reasons not important for this post과 특정 날짜 사이의 밀리초 수를 되돌려준다.예를 들어, 2020년 10월 23일에 밀리초1603411200000로 돌아갑니다.
이것은 보기에는 어리석고 난삽해 보이지만, 그것은 나에게 하나의 생각을 주었다.
  • 현재 날짜에 기반한 밀리초 수를 가져옵니다.
  • 게시물의 날짜에 대해 같은 일을 한다.
  • 만약 게시물의 밀리초 수가 오늘의 밀리초 수보다 높으면 게시물의 날짜가 오늘 이후임을 나타낸다.이것은 미래의 게시물이라는 것을 의미하며, 그것을 배제하기 위해 false 로 되돌아갈 것이다.
  • 모든 기타 인원은 귀환true을 통해 포함해야 한다.
  • 결과는 득의양양하고 만족스러운 지능적 감각이었다...나는 수집 함수에 이 함수를 추가했다.
    const hideFutureItems = (post) => {
      let now = new Date().getTime();
      if (now < post.date.getTime()) return false;
      return true;
    }
    
    
    eleventyConfig.addCollection("posts", function (collection) {
     return collection.getFilteredByGlob("./posts/*.md")
       .filter(hideFutureItems)
       .reverse();
    });
    
    그래서 나는 내 사이트에서 모든 미래의 게시물을 추방했다!

    2) 매일 배포 설정


    지금까지는 모든 것이 좋았지만 큰 맹점이 있었다.내가 사이트 페이지를 생성할 때만 사이트가'오늘'을 본 날짜를 설정할 수 있다.
    예를 들어 나는 화요일에 내 사이트를 다시 시작했는데, 그 중에는 다음날 발표할 예정인 게시물이 포함되었다.사이트는 며칠, 심지어 몇 주 후가 화요일이라고 생각할 것이다.만약 그것이 날짜를 검사하고 매일 자신을 재건한다면, 나는 단지 댓글을 안배할 수 있을 뿐이다.하지만 매일 내 사이트를 다시 시작하는 것은 내가 피하고 싶은 단조로운 자질구레한 일이다!
    이것이 바로 Netlify와 IFTTT의 용무지이다.
    우선Netlify lets you add build hooks.이러한 URL은 새 빌드를 트리거하기 위해 POST 요청을 보낼 수 있습니다.매일 구축할 URL을 설정하고 복사했습니다.

    지금 나는 매일 이 인터넷 주소를 클릭해야 한다.IFTTT는 간단하고 조건부 웹 조작을 위한 도구로 기억됩니다.그래서 저는 그들의'time'과'webhook'서비스를 "매일 아침 7시에 이 webhook에 POST 요청을 보냅니다"로 연결할 수 있습니다.

    이것은 약간의 대가를 치러야 한다.나는 Netlify가 나 같은 초보 고객을 위해 내장 대역폭과 시간 제한을 설정한 것을 보았다.그러나 Eleventy의 구축이 얼마나 가볍고 빠른지, 그리고 제가 Netlify에 무거운 응용 프로그램이 없다는 것을 감안하면 저와 같은 일반 블로거들에게는 문제가 되지 않습니다.

    어쨌든


    제킬에서 엘레빈티까지는 쉽지 않지만, 전반적으로 말하자면, 나는 이것이 가치가 있다고 생각한다.만약 당신이 프로그래머라면, 개인 사이트의 프로젝트를 찾고 있다면, 나는 이것을 추천합니다.만약 이 모든 추가적인 장점이 아니라면, 적어도 당신의 주의력을 저주 세계의 영역에서 옮길 수 있을 것이다.
    즐겁게 안배했습니다!

    좋은 웹페이지 즐겨찾기