ブログテンプレートを作成するCLIを作る
ブログテンプレートを作成するCLIを作る
こんにちは会津大学学部4年森本望です。
前回書いた通り、processmd
を用いてMarkdownからJSONに変換して
ブログ記事にしています。
今回はprocessmd
に使うテンプレートを作成するCLIをNodeJSを使って作成しました。
作成するCLIが出力するのは
---
title: ブログテンプレートを作成するCLIを作る
created_at: 2019-07-13
tags: processmd, cli, node, markdown
description:
writer: nozomoto
---
といったものを出力します。
技術
使った言語は
- NodeJSです。
readline-sync
を使い、標準入力で項目を入れることができます。
const title = readlineSync.question("Title: ");
const tags = readlineSync.question("Tag(カンマ区切り): ");
const writer = readlineSync.question("writer: ");
また command-line-arg
と command-line-usage
を使ってコマンドライン引数、--help
の表示をしています。
こんな感じです。
const commandLineArgs = require("command-line-args");
const commandLineUsage = require("command-line-usage");
const optionDefinitions = [
{
name: "help",
alias: "h",
type: Boolean
},
{
name: "outputDir",
alias: "o",
type: String
}
];
const sections = [
{
header: "processmd template maker",
content: "generate template of processmd for aizugeekdojo.github.io"
},
{
header: "Options",
optionList: [
{
name: "outputDir",
typeLabel: "{underline path}",
description: "The output template path."
}
]
}
];
const options = commandLineArgs(optionDefinitions);
const usage = commandLineUsage(sections);
if (options.help || !options.outputDir) {
console.log(usage);
} else {
main();
}
使い方
インストール
npm i --save nozo-moto/processmd_template_maker
package.json
に
"scripts": {
"blog-template": "processmd_template_maker --outputDir=./blog/"
},
を付け加えます。
そして、npm run blog-template
$ npm run blog-template
Title: test
Tag(カンマ区切り): test
writer: test
すると
---
title: test
created_at: 2019-07-13
tags: test
description:
writer: test
---
と書かれた2019-07-13-test.md
が作成されます。
この後は、このファイルに記事を書けば自動的にレンダリングされます。