NKSSG
NakaKen Static Site Generator

新規記事のひな型を作ろう

🐤

NKSSG には、記事のひな型を作っておくことができます。default テーマにも記事のひな型が含まれているので、これを参考にして作り方を見ていきます。

新規記事のひな型の仕組み

NKSSG でブログやサイトを作るときには、docs フォルダの下に記事ファイルを追加していきます。この記事ファイルには、フロントマターと本文を追加していきます。このとき、フォルダを作ったり、フロントマターの設定項目を追加するのが面倒だという人もいるでしょう。

例えば、年、月ごとのフォルダは自動的にできてほしいし、毎回フロントマターに設定するタイトル(空文字)や公開日時(今の時間)は自動で設定されていてほしいと感じる人もいるはずです。

そこで、NKSSG では、ひな型から記事ファイルを作る機能を用意しています。default のテーマでは、以下のコマンドを実行すると、新規記事が作成されます。

nkssg new post

作成されたファイルのパスが表示されます。後は、そのファイルを更新していけばいいです。楽ですね。

このコマンドを実行したときには、次のような処理が行われています。

まず、使用しているテーマのフォルダの中で、new_postという名前がついているファイルを探します。

ファイルがあれば、次にファイル内の変換を行います。フロントマターで以下の内容があれば、変換されます。

  • %Y: コマンドを実行した年
  • %m: コマンドを実行した月
  • %d: コマンドを実行した日
  • %H: コマンドを実行した時
  • %M: コマンドを実行した分
  • %S: コマンドを実行した秒
  • {path}: nkssg new postの後に指定した文字

さらに、file:という設定があれば、指定した場所にファイルが保存されます。docs フォルダからの相対パスで保存先が決まります。

以上を踏まえ、new_post.htmlに次のように書いていた場合を考えます。

---
file: "post/%Y/%m/%Y%m%d-%H%M%S.html"
url: "/%Y/%m/%d/%H%M%S/"
title: ""
date: %Y-%m-%d %H:%M:%S
category: ["uncategorized"]
tag: ["Tag 1", "Tag2"]
---

Sample Text.

この場合、nkssg new postを実行すると、/docs/post/2021/04/01/20210401-123456.htmlのような場所に、ファイルができることになります。フォルダがない場合は、フォルダもすべて作成されます。

作成されたファイルの中は、次のようになります。

---
url: "/2021/04/01/123456/"
title: ""
date: 2021-04-01 12:34:56
category: ["uncategorized"]
tag: ["Tag 1", "Tag2"]
---

Sample Text.

URL と公開日時には、コマンドを実行したときの日時が反映されます。タイトル、カテゴリー、タグは初めのままです。本文も何も変換されません。file の設定は、ファイルの保存場所を特定するために使われます。保存した後は、フロントマターからは削除されます。

新規記事のひな型を修正しよう

新規記事のひな型がどう変換されるかがわかったので、ひな型を好きな内容に修正しましょう。

まず、新しいひな型をどこに保存するかを決めます。/themes/default/new/new_post.htmlに上書き保存することもできますし、このファイルを/themes/child/new/new_post.htmlにコピーして、そこに保存することもできます。default テーマをそのままにしたい場合は、後者のやり方のように、child という子テーマにファイルを追加します。子テーマのほうが優先して採用されます。TODO

さて、ひな型を修正していきます。URL はパーマリンクで設定するからいらない、という場合は、行ごと削除しても構いません。カテゴリーやタグは、設定項目は必要だが、何もない状態にしておきたい、ということもあるでしょう。また、本文も空にしておきたいかもしれません。

これらを反映すると、次のような設定になります。

---
file: "post/%Y/%m/%Y%m%d-%H%M%S.html"
title: ""
date: %Y-%m-%d %H:%M:%S
category: []
tag: []
---

新規記事の保存場所を変えたい場合は、file の所を修正します。あまり記事を書かないので、年ごとのフォルダで分ければいい場合は、次のようにすればいいです。

file: "post/%Y/%Y%m%d-%H%M%S.html"

これは、docsフォルダ内で記事ファイルをどう管理するか、なので、URL とはまた別の話です。記事ファイルは記事ファイルでどのように管理するかを考えましょう。

メモ

Windows であっても、パスの区切りは "/" を使います。

HTML ファイルではなく、Markdown ファイルで保存したい場合は、次のようにします。

file: "post/%Y/%m/%Y%m%d-%H%M%S.md"

これで、nkssg new postを実行すると、Markdown ファイルが作成されるようになります。

新規記事のひな型を追加しよう

nkssg new postを実行すると、new_post.htmlというひな型から新規記事ファイルが作成されます。このひな形は、増やすこともできます。

nkssg new xxxを実行すると、new_xxx.htmlというひな型を探して、それをもとに新規記事が作成されます。なので、好きなだけひな型を増やすことができます。

例えば、本を読んだ感想を記事にすることが多いなら、new_book.htmlというひな型を作っておくといいかもしれません。よく使うカスタムフィールドもフロントマターに書いておくと、記事を書くのが便利になるでしょう。カスタムフィールドは、次の記事が参考になります。

🏞 カスタムフィールドを使おう

また、nkssg new xxx pathというように、4つ目の文字列はひな型の中で{path}として使うことができます。例えば、ひな型ファイルnew_xxx.htmlに、次のように書いたとしましょう。

file: "draft/%Y/{path}.md"

こうして、nkssg new xxx pathを実行すると、draft/2021/path.mdにファイルが保存されます。ブログではあまり使わないかもしれませんが、サイト(非ブログ)の場合は、記事を書き始めるのにいいかもしれません。