ssg-for-glossary
TypeScript icon, indicating that this package has built-in type declarations

0.1.0 • Public • Published

SSG for Glossary

用語集のための SSG (Static Site Generator)。

用語 1 つにつき 1 つの Markdown ファイルが収められたディレクトリを読み取り、用語集として使える Web サイトを生成するためのライブラリおよびコマンドを提供します。

フォーマット

1 つの用語の説明を 1 つの Markdown ファイルに記載してください。すべての Markdown ファイルは特定ディレクトリ以下に配置します。

Markdown ファイルのファイル名は <用語>.md とします。たとえば、用語集 のためのファイルは 用語集.md です。

Markdown ファイルの中身は任意の GFM (GitHub Flavored Markdown) が使用できます。ただし、後述する用語の自動リンクと Front Matter について特別なルールがあります。

Markdown ファイル中に出現する用語は Markdown ファイルとして定義されていると自動的にハイパーリンクになります。たとえば、整理された用語集を使うと**理解の助け**となります。 のような Markdown の場合、ファイルとして 用語集.md が定義されていれば 整理された<a href="/用語集">用語集</a>を使うと<b>理解の助け</b>となります。 のような出力となります。

Markdown ファイルの先頭に用語のメタデータとなる Front Matter を埋め込むことができます。YAML で記述します。定義済みのメタデータは

キー 説明
kana 用語の読み方。
alias 用語の別名。リストで複数記載できる。ここに定義された単語でも自動リンクされる。
tag 用語の分類。リストで複数記載できる。ここに記載された単語の専用ページが生成される。

サンプル

取説.md

---
kana: とりせつ
alias: 説明書
tag:
  - 一般
  - 最初に見ておいてほしい
---

整理された用語集を使うと**理解の助け**となります。

使い方

CLI

以下のコマンドを実行すると out ディレクトリに Web サイトが出力されます。

$ npx ssg-for-glossary <用語の Markdown ファイルが格納されたディレクトリ>

ライブラリ

import { generate } from "ssg-for-glossary";

async function main() {
  await generate({
    inputDir: "<用語の Markdown ファイルが格納されたディレクトリ>",
  });
}

カスタマイズ

import { copy, scan, read, render, put } from "ssg-for-glossary";

async function generate({ inputDir, outputDir }) {
  await copy(inputDir, outputDir);
  const filePaths = await scan(inputDir);
  const entries = await read(inputDir, filePaths);
  const pages = await render(entries);
  await put(outputDir, pages);
}

Readme

Keywords

Package Sidebar

Install

npm i ssg-for-glossary

Weekly Downloads

1

Version

0.1.0

License

MIT

Unpacked Size

74.8 kB

Total Files

12

Last publish

Collaborators

  • koharakazuya