Markdown、shell、pandoc を使用して静的サイトと Atom フィードを生成します。
git clone pdssg、理想的にはサイトのソース ディレクトリの横にあります。
git clone https://github.com/torresjrjr/pdssgpdssg を実行して静的サイトを構築するには、サイトのソース ディレクトリの上の 1 つのディレクトリで pdssg スクリプトを実行します。
$ ls
src/ pdssg/
$ ./pdssg/pdssg pdssg は、コマンドライン フラグを持たない単一の実行可能なシェル スクリプトです。これは、既存の隣接ディレクトリsrc/ (ソース) から、サイトのコンテンツ (HTML Web ページに変換されるマークダウン ファイルやその他のファイル) を含む隣接サイト ディレクトリ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 ファイルに変換され、Web ページとして使用できるようになります。例外は、 .gitignoreファイルなどの./_ignoreファイル内のパターンと一致するファイルパスです。
pdssg は、Markdown ファイルに YAML フロントマター ブロックがあることを期待します。これは、残りのファイル内容の前に、 ---のペアで囲まれた YAML メタデータのブロックです。
フロントマターには少なくともtitle値が必要です。これは<h1>タイトル見出しの作成に使用されます。 authorとdate値は一般的であり、必要に応じて推奨されます。
マークダウン ファイルの例:
---
title : My Webpage Title
author : John Smith
date : 2020-12-30
---
## Subheading
contents...例のように、HTML ファイルと Atom ファイルの生成には、 _includesディレクトリと_templatesディレクトリが使用されます。その後、それらは破棄されます。
_templates内のファイルの場合:
atom.xmlは HTML ドキュメントを作成するために使用されます。main.htmlは Atom フィードの作成に使用されます。 _includes内のファイルの場合:
meta.htmlは、 <meta>タグ内のドキュメント ヘッダーに挿入されます。header.htmlは、メインコンテンツの前の<body>タグ内の本文に挿入されます。footer.htmlは、本文のメインコンテンツの後の<body>タグ内に挿入されます。Atom フィードは、より新しく、より堅牢なシンジケーション形式に基づく RSS のようなフィードです。これらは基本的に RSS と同じように使用され、そのように呼ばれます。 Atom フィードを使用すると、読者はブログなどの Web サイトの新しいコンテンツを購読できます。
pdssg は、ディレクトリのファイルをフィード エントリとして使用して、ディレクトリから Atom フィードを作成できます。これを行うには、フィード用に指定されたディレクトリを作成し、次のように「Atom シード ファイル」を作成する必要があります。
./feeds/ ) を作成し、そのパスを構成ファイル_feedsに書き込みます。./posts/ )。./feeds/posts/ )。.mdファイル拡張子を追加します (例: ./feeds/posts.md )。デモンストレーションについては、上記のサンプル サイト( posts/ディレクトリ) を参照してください。
Atom シード ファイルは Atom フィード ファイルに変換されます。この結果のフィードは新しいパスに存在しますが、拡張子は.mdではなく.xmlになります。この例では、アトム フィードはexample.com/feeds/posts.xmlに表示されます。 ./posts.mdファイルはフィードには必要なく、ディレクトリのみに必要であることに注意してください。
注: Atom エントリは、YAML フロントマターで指定されたdateではなく、対応するファイル名の英数字順に並べられます。
このプロジェクトは、私自身のサイトのための個人的な挑戦から生まれました。親切なブロガーさんからのリクエストで、クリーンアップして公開しました。
連絡先: t.me/torresjrjr