@s-hirano-ist/s-scripts 1.22.0 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@s-hirano-ist/s-scripts",
3
- "version": "1.22.0",
3
+ "version": "1.22.1",
4
4
  "description": "CLI scripts for s-private data operations",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,8 +31,7 @@
31
31
  "fix-image-formats": "./dist/fix-image-formats.js",
32
32
  "fix-book-frontmatter": "./dist/fix-book-frontmatter.js",
33
33
  "validate-json-articles": "./dist/validate-json-articles.js",
34
- "enrich-books": "./dist/enrich-books.js",
35
- "generate-book-data": "./dist/generate-book-data.js"
34
+ "enrich-books": "./dist/enrich-books.js"
36
35
  },
37
36
  "files": [
38
37
  "dist",
@@ -60,8 +59,8 @@
60
59
  "sharp": "0.34.5",
61
60
  "turndown": "7.2.4",
62
61
  "@s-hirano-ist/s-core": "1.19.0",
63
- "@s-hirano-ist/s-notification": "1.18.3",
64
62
  "@s-hirano-ist/s-database": "1.18.6",
63
+ "@s-hirano-ist/s-notification": "1.18.3",
65
64
  "@s-hirano-ist/s-search": "1.18.7",
66
65
  "@s-hirano-ist/s-storage": "1.18.4"
67
66
  },
@@ -103,7 +102,6 @@
103
102
  "fix-image-formats": "tsx src/fix-image-formats.ts",
104
103
  "fix-book-frontmatter": "tsx src/fix-book-frontmatter.ts",
105
104
  "validate-json-articles": "tsx src/validate-json-articles.ts",
106
- "enrich-books": "tsx src/enrich-books.ts",
107
- "generate-book-data": "tsx src/generate-book-data.ts"
105
+ "enrich-books": "tsx src/enrich-books.ts"
108
106
  }
109
107
  }
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=generate-book-data.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-book-data.d.ts","sourceRoot":"","sources":["../src/generate-book-data.ts"],"names":[],"mappings":""}
@@ -1,65 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * markdown/book/*.md の frontmatter を集約し、s-public が読み込む
4
- * data.gen.json 形式で出力するスクリプト。
5
- *
6
- * 出力先は引数 --out <path> または env S_PUBLIC_PATH で指定する。
7
- * どちらも無ければ ../s-public/src/data/book/data.gen.json にフォールバック。
8
- */
9
- import { readFile, writeFile } from "node:fs/promises";
10
- import { basename, join, resolve } from "node:path";
11
- import { glob } from "glob";
12
- import matter from "gray-matter";
13
- function parseOutArg() {
14
- const idx = process.argv.indexOf("--out");
15
- if (idx >= 0 && idx + 1 < process.argv.length) {
16
- return process.argv[idx + 1];
17
- }
18
- return undefined;
19
- }
20
- async function main() {
21
- const contentsPath = process.env.S_CONTENTS_PATH ?? process.cwd();
22
- const bookDir = join(contentsPath, "markdown", "book");
23
- const outArg = parseOutArg();
24
- const sPublicPath = outArg ??
25
- (process.env.S_PUBLIC_PATH
26
- ? join(process.env.S_PUBLIC_PATH, "src/data/book/data.gen.json")
27
- : resolve(contentsPath, "../s-public/src/data/book/data.gen.json"));
28
- const files = await glob(`${bookDir}/*.md`);
29
- console.log(`📁 ${files.length} 件の markdown を検出しました。`);
30
- const entries = [];
31
- let skippedCount = 0;
32
- for (const filePath of files.sort()) {
33
- const fileName = basename(filePath);
34
- const isbn = basename(filePath, ".md");
35
- const raw = await readFile(filePath, "utf8");
36
- const parsed = matter(raw);
37
- const data = parsed.data;
38
- if (data.rating == null || data.googleTitle == null) {
39
- console.warn(`⚠️ ${fileName}: rating または googleTitle が未設定のためスキップします。`);
40
- skippedCount++;
41
- continue;
42
- }
43
- entries.push({
44
- ISBN: isbn,
45
- title: data.description ?? "",
46
- googleTitle: data.googleTitle ?? "",
47
- googleSubtitle: data.googleSubtitle ?? "",
48
- googleAuthors: data.googleAuthors ?? [],
49
- googleDescription: data.googleDescription ?? "",
50
- googleImgSrc: data.googleImgSrc ?? "",
51
- googleHref: data.googleHref ?? "",
52
- tags: data.tags ?? [],
53
- rating: data.rating,
54
- });
55
- }
56
- entries.sort((a, b) => a.ISBN.localeCompare(b.ISBN));
57
- await writeFile(sPublicPath, JSON.stringify(entries), "utf8");
58
- console.log(`💾 書き出し: ${sPublicPath}`);
59
- console.log(`📊 結果: 出力 ${entries.length} 件, スキップ ${skippedCount} 件`);
60
- }
61
- main().catch((error) => {
62
- console.error("❌ エラーが発生しました:", error);
63
- process.exit(1);
64
- });
65
- //# sourceMappingURL=generate-book-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate-book-data.js","sourceRoot":"","sources":["../src/generate-book-data.ts"],"names":[],"mappings":"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"}