GN⁺: "Make"를 이용한 정적 사이트 생성기 (2022)
(karl.berlin)- "Make"를 정적 사이트 생성기로 사용하는 방법에 대한 기사, 이 도구는 간단함, 속도, 저 유지 보수로 인해 인기를 얻고 있다.
- 저자 Karl Bartel은 간단한 스크립트를 사용하여 블로그를 설정하는 경험을 공유하며, 이를 다른 사이트 빌더를 사용하는 것보다 더 만족스럽게 느꼈다.
- 기본 설정은 모든 입력 파일을 소스 디렉토리에 두고, 처리 중에 모든 HTML 파일에 헤더를 추가하며, 다른 모든 파일을 그대로 빌드 디렉토리로 복사하는 것을 포함한다.
- 저자는
make build
로 실행할 때 각 단계에 대한 Makefile 규칙을 제공하며, 이를 통해 로컬에서 브라우징하거나 웹 서버에 업로드할 수 있는 빌드 디렉토리를 생성한다. - 기사는 또한 현재 페이지를 표시하거나, 마크다운에서 페이지를 생성하거나, 편의 기능을 추가하는 등 다양한 요구에 맞게 기본 설정을 확장하는 방법에 대해 논의한다.
- 편의 기능의 예로는 Python의 내장 웹 서버를 사용하여 사이트를 로컬에서 제공하거나, 소스 디렉토리의 파일이 변경될 때 사이트를 자동으로 다시 빌드하거나, 사이트를 GitHub Pages에 업로드하는 것이 있다.
- 저자는 Makefile에 자신만의 정적 사이트 생성기를 가지는 것의 이점을 강조하며, 이에는 이상한 종속성이 없음, 쉬운 유지 보수, 자신의 요구에 빠르게 적응할 수 있음이 포함된다.
- 이 접근 방식을 사용하여 구축된 페이지의 실제 예는 https://github.com/karlb/astridbartel.de에서 제공된다.
Hacker News 의견
- "Make"를 정적 사이트 생성기로 사용하는 논의에 대한 기사
- 한 사용자가 Makefile을 사용하여 웹사이트를 생성하는 개인적인 경험을 공유, 뉴스, RSS 피드, 연구 발표와 강의 자료의 자동 목록 등의 기능을 추가한 것이 효과적으로 작동해 왔음
- 사용자는 웹사이트가 호스팅되는 원격 서버에서 필요할 때 'make'를 자동으로 호출하는 git hooks의 사용을 언급
- 다른 사용자는 이 접근법의 문제점을 지적: 소스에서 파일을 삭제해도 빌드에서 삭제되지 않음. 전체 빌드 폴더를 재빌드 전에 제거하는 우회 방법을 제안하지만, 이는 빌드 시스템의 목적을 상쇄시킴
- 한 사용자는 m4를 추가하여 유연성을 높이는 것을 제안하지만, 기여자들 사이에서 HTML 숙련도가 필요하기 때문에 이 접근법이 오늘날의 큰 웹사이트에서는 작동하지 않을 수 있음을 지적
- 한 사용자는 Karl의 "blog.sh" 쉘 스크립트 작업에 영감을 받아 자신의 미니멀리스트 정적 사이트 생성기(SSG)인 "barf"를 만드는 방법을 공유
- 다른 사용자는 이미 Github에 푸시하고 있다면, 소스를 푸시하고 Github이 마크다운을 호스팅된 페이지로 게시하게 할 수 있다고 지적
- 한 사용자는 Hacker News에서 접하는 대부분의 개발자 블로그에 RSS 피드가 있음을 칭찬하며, 자신이 읽는 모든 흥미로운 기사에 대한 피드를 팔로우하는 습관을 공유
- 한 사용자는 'make'를 사용하여 과학 논문을 생성하는 경험에 대한 일화를 공유, 단일 테스트 파일을 변경하면 테스트를 실행하고 그래프를 생성하는 등 논문 전체를 재생성할 수 있음
- 한 사용자는 'make'가 느린 컴파일러에 의해 빌드된 큰 프로그램에 유익하다고 주장, 빠른 증분 재빌드를 가능하게 하지만, 빠르게 생성할 수 있는 정적 사이트의 경우 스크립트가 더 효율적일 수 있음
- 한 사용자는 쉘 스크립트를 사용한 후 Makefile로 전환한 경험을 공유, 이것이 더 적합하다고 발견. 페이지를 생성하고 색인과 Atom 피드를 생성하기 위해 XSLT 템플릿의 사용도 언급
- 20년 이상 리눅스와 쉘 스크립트를 사용해 왔지만 코딩을 많이 하지 않은 사용자는 'make'가 쉘 스크립트보다 선호되는 이유를 묻고, Zim-wiki에서 웹사이트를 만든 후 스크립트를 사용하여 메인 강의 페이지를 정리하고 업데이트하는 습관을 공유