Markdown, Shell 및 pandoc를 사용하여 정적 사이트와 Atom 피드를 생성합니다.
git clone pdssg, 이상적으로는 사이트 소스 디렉터리 옆에 있습니다.
git clone https://github.com/torresjrjr/pdssg
pdssg를 실행하고 정적 사이트를 구축하려면 사이트 소스 디렉토리 위의 한 디렉토리에서 pdssg 스크립트를 실행하십시오.
$ ls
src/ pdssg/
$ ./pdssg/pdssg
pdssg는 명령줄 플래그가 없는 단일 실행 가능한 쉘 스크립트입니다. 이는 단순히 사이트의 콘텐츠(HTML 웹 페이지로 변환할 마크다운 파일 및 기타 파일)를 사용하여 기존의 이웃 디렉터리 src/
(소스)에서 이웃 사이트 디렉터리 dst/
(대상)를 생성합니다.
pdssg의 디자인은 모듈식이며 트리 기반입니다. 다음은 사이트 소스 디렉터리의 예 입니다.
src/
|-- _ignore
|-- _feeds
|-- index.md
|-- about.md
|-- posts.md
|-- posts/
| |-- _drafts/
| | `--- 2020-04-01-bored.md
| |-- 2020-01-01-new-year.md
| |-- 2020-02-01-corona-what.md
| `-- 2020-03-01-stuck-at-home.md
|-- feeds/
| `-- posts.md
|-- assets/
| `-- style.css
|-- _templates/
| |-- atom.xml
| `-- main.html
`-- _includes/
|-- header.html
|-- footer.html
`-- meta.html
결과 빌드 디렉터리는 다음과 같습니다.
dst/
|-- index.html
|-- about.html
|-- posts.html
|-- posts/
| |--- 2020-01-01-new-year.html
| |--- 2020-02-01-corona-what.html
| `--- 2020-03-01-stuck-at-home.html
|-- feeds/
| `--- posts.html
`-- assets/
`--- style.css
참고: 밑줄 _
로 시작하는 파일과 디렉터리는 삭제됩니다.
마크다운 파일은 HTML 파일로 변환되어 웹페이지로 사용할 수 있습니다. .gitignore
파일과 같은 ./_ignore
파일의 패턴과 일치하는 파일 경로는 예외입니다.
pdssg는 Markdown 파일에 나머지 파일 내용 앞에 ---
쌍으로 둘러싸인 YAML 메타데이터 블록인 YAML 머리말 블록이 있을 것으로 예상합니다.
머리말에는 최소한 <h1>
제목 표제를 만드는 데 사용되는 title
값이 있어야 합니다 . author
및 date
값은 일반적이며 적절한 경우 권장됩니다.
마크다운 파일의 예:
---
title : My Webpage Title
author : John Smith
date : 2020-12-30
---
## Subheading
contents...
예제에서와 같이 _includes
및 _templates
디렉토리는 HTML 및 Atom 파일을 생성하는 데 사용됩니다. 그런 다음 폐기됩니다.
_templates
에 있는 파일의 경우:
atom.xml
HTML 문서를 만드는 데 사용됩니다.main.html
Atom 피드를 만드는 데 사용됩니다. _includes
에 있는 파일의 경우:
meta.html
<meta>
태그 내의 문서 헤더에 삽입됩니다.header.html
은 <body>
태그 내 본문의 기본 콘텐츠 앞에 삽입됩니다.footer.html
은 기본 콘텐츠 뒤의 <body>
태그 내 본문에 삽입됩니다.Atom 피드는 더욱 새롭고 강력한 신디케이션 형식을 기반으로 하는 RSS와 유사한 피드입니다. 본질적으로 RSS처럼 사용되며 RSS라고도 합니다. Atom 피드를 통해 독자는 블로그와 같은 웹사이트의 새로운 콘텐츠를 구독할 수 있습니다.
pdssg는 디렉토리의 파일을 피드 항목으로 사용하여 디렉토리에서 Atom 피드를 만들 수 있습니다. 이렇게 하려면 피드에 대해 지정된 디렉터리를 만들고 다음과 같이 "Atom 시드 파일"을 만들어야 합니다.
./feeds/
)를 만들고 해당 경로를 구성 파일 _feeds
에 씁니다../posts/
)../feeds/posts/
)..md
파일 확장자를 경로에 추가합니다(예: ./feeds/posts.md
). 데모를 보려면 위의 예제 사이트 ( posts/
디렉터리)를 참조하세요.
Atom 시드 파일은 Atom 피드 파일로 변환됩니다. 결과 피드는 새 경로에 존재하지만 .md
대신 .xml
확장자를 사용합니다. 이 예에서 Atom 피드는 example.com/feeds/posts.xml
에 표시됩니다. ./posts.md
파일은 피드에는 필요하지 않고 디렉토리에만 필요합니다.
참고: Atom 항목은 YAML 앞부분에 지정된 date
가 아닌 해당 파일 이름을 기준으로 영숫자순으로 정렬됩니다.
이 프로젝트는 내 사이트에 대한 개인적인 도전에서 탄생했습니다. 친절한 블로거님의 요청으로 정리해서 공개하게 되었습니다.
저에게 연락주세요: t.me/torresjrjr