noblog 0.0.3 → 0.0.5

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.
Files changed (41) hide show
  1. package/dist/cmds/generate.d.ts +1 -0
  2. package/dist/generate.esm.js +241 -0
  3. package/dist/generate.esm.js.map +1 -0
  4. package/dist/generate.js +263 -0
  5. package/dist/generate.js.map +1 -0
  6. package/dist/lib/{cvtmd.d.ts → nomd/format.d.ts} +1 -1
  7. package/dist/lib/nomd/format.d.ts.map +1 -0
  8. package/dist/lib/nomd/nomd.d.ts +7 -1
  9. package/dist/lib/nomd/nomd.d.ts.map +1 -1
  10. package/package.json +1 -1
  11. package/dist/cmds/generate.js +0 -48
  12. package/dist/cmds/generate.js.map +0 -1
  13. package/dist/index.js +0 -32
  14. package/dist/index.js.map +0 -1
  15. package/dist/lib/cvtmd.d.ts.map +0 -1
  16. package/dist/lib/cvtmd.js +0 -111
  17. package/dist/lib/cvtmd.js.map +0 -1
  18. package/dist/lib/nomd/cvter.d.ts +0 -38
  19. package/dist/lib/nomd/cvter.d.ts.map +0 -1
  20. package/dist/lib/nomd/cvter.js +0 -111
  21. package/dist/lib/nomd/cvter.js.map +0 -1
  22. package/dist/lib/nomd/nomd.js +0 -88
  23. package/dist/lib/nomd/nomd.js.map +0 -1
  24. package/dist/lib/nomd.d.ts +0 -8
  25. package/dist/lib/nomd.d.ts.map +0 -1
  26. package/dist/lib/nomd.js +0 -50
  27. package/dist/lib/nomd.js.map +0 -1
  28. package/dist/lib/nosm/default.d.ts +0 -2
  29. package/dist/lib/nosm/default.d.ts.map +0 -1
  30. package/dist/lib/nosm/default.js +0 -2
  31. package/dist/lib/nosm/default.js.map +0 -1
  32. package/dist/lib/nosm/nosm.d.ts +0 -2
  33. package/dist/lib/nosm/nosm.d.ts.map +0 -1
  34. package/dist/lib/nosm/nosm.js +0 -3
  35. package/dist/lib/nosm/nosm.js.map +0 -1
  36. package/dist/lib/notion/client.js +0 -64
  37. package/dist/lib/notion/client.js.map +0 -1
  38. package/dist/lib/notion/object.js +0 -2
  39. package/dist/lib/notion/object.js.map +0 -1
  40. package/dist/lib/notion/request.js +0 -2
  41. package/dist/lib/notion/request.js.map +0 -1
@@ -1,2 +1,3 @@
1
+ #!/usr/bin/env node
1
2
  export {};
2
3
  //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1,241 @@
1
+ #!/usr/bin/env node
2
+ import * as path from 'path';
3
+ import * as fs from 'fs/promises';
4
+ import { NotionToMarkdown } from 'notion-to-md';
5
+ import 'node-fetch';
6
+ import 'markdown-table';
7
+ import 'dotenv/config';
8
+ import retry from 'async-retry';
9
+ import { Client, APIResponseError } from '@notionhq/client';
10
+
11
+ const addTabSpace = (text, n = 0) => {
12
+ const tab = " ";
13
+ for (let i = 0; i < n; i++) {
14
+ if (text.includes("\n")) {
15
+ const multiLineText = text.split(/(?:^|\n)/).join(`\n${tab}`);
16
+ text = tab + multiLineText;
17
+ }
18
+ else
19
+ text = tab + text;
20
+ }
21
+ return text;
22
+ };
23
+ const toggle = (summary, children) => {
24
+ if (!summary)
25
+ return children || "";
26
+ return `<details>
27
+ <summary>${summary}</summary>
28
+ ${children || ""}
29
+ </details>\n\n`;
30
+ };
31
+
32
+ const NOTION_API_SECRET = process.env.NOTION_API_SECRET ?? '';
33
+ const NOBLOG_DATABASE_ID = process.env.NOBLOG_DATABASE_ID ?? '';
34
+ const client = new Client({
35
+ auth: NOTION_API_SECRET,
36
+ });
37
+ const numberOfRetry = 2;
38
+ async function GetAllPosts() {
39
+ const params = {
40
+ database_id: NOBLOG_DATABASE_ID,
41
+ filter: {
42
+ and: [{
43
+ property: 'publish',
44
+ checkbox: { equals: true, },
45
+ }]
46
+ },
47
+ sorts: [{
48
+ property: 'date',
49
+ direction: 'descending',
50
+ }],
51
+ page_size: 100,
52
+ };
53
+ let results = [];
54
+ while (true) {
55
+ const res = await retry(async (bail) => {
56
+ try {
57
+ return (await client.databases.query(params));
58
+ }
59
+ catch (error) {
60
+ if (error instanceof APIResponseError) {
61
+ if (error.status && error.status >= 400 && error.status < 500) {
62
+ bail(error);
63
+ }
64
+ }
65
+ throw error;
66
+ }
67
+ }, { retries: numberOfRetry, });
68
+ results = results.concat(res.results);
69
+ if (!res.has_more) {
70
+ break;
71
+ }
72
+ params['start_cursor'] = res.next_cursor;
73
+ }
74
+ return results;
75
+ }
76
+ async function GetPageMeta(page_id) {
77
+ const result = await retry(async (bail) => {
78
+ try {
79
+ return (await client.pages.retrieve({ page_id: page_id }));
80
+ }
81
+ catch (error) {
82
+ if (error instanceof APIResponseError) {
83
+ if (error.status && error.status >= 400 && error.status < 500) {
84
+ bail(error);
85
+ }
86
+ }
87
+ throw error;
88
+ }
89
+ }, { retries: numberOfRetry, });
90
+ return result;
91
+ }
92
+
93
+ class Noblog extends NotionToMarkdown {
94
+ Posts = [];
95
+ SavePath = "./src/pages/posts/";
96
+ ChildPath = "nob_children/";
97
+ MdCollection = {};
98
+ constructor(posts, save_path, child_path) {
99
+ super({ notionClient: client });
100
+ this.Posts = posts;
101
+ if (child_path != undefined) {
102
+ this.ChildPath = child_path;
103
+ }
104
+ if (save_path != undefined) {
105
+ this.SavePath = save_path;
106
+ }
107
+ this.setCustomTransformer("child_page", async (block) => {
108
+ let path = this.ChildPath;
109
+ const page = block;
110
+ if (!page?.id) {
111
+ return false;
112
+ }
113
+ if (this.Posts.filter(post => post.id === page.child_page.title).length > 0) {
114
+ path = "";
115
+ }
116
+ return `[${page.child_page.title}](${path}${page.id})`;
117
+ });
118
+ }
119
+ async Collect(recur = true) {
120
+ const save_dir = this.SavePath;
121
+ const sub_dir = path.join(save_dir, this.ChildPath);
122
+ const futs = this.Posts.map(page => {
123
+ return this.FromPageid(page.id, recur);
124
+ });
125
+ try {
126
+ await Promise.all(futs);
127
+ for (const pageid of Object.keys(this.MdCollection)) {
128
+ let fpath = sub_dir;
129
+ if (this.Posts.find(page => page.id === pageid))
130
+ fpath = save_dir;
131
+ await this.SaveJelly(pageid + ".md", fpath, this.MdCollection[pageid]);
132
+ }
133
+ console.log(`success: finish dump all files to "${save_dir}"`);
134
+ }
135
+ catch (error) {
136
+ if (error instanceof Error) {
137
+ console.log(`failed: consider run verbose with v=true - ${error.message}`);
138
+ }
139
+ else {
140
+ console.log('failed: an unknown error occurred');
141
+ }
142
+ }
143
+ }
144
+ async FromBlocks(blocks, recursive) {
145
+ let jelly = { content: "", children: [] };
146
+ for (const block of blocks) {
147
+ const subjelly = await this.FromBlocks(block.children, recursive);
148
+ if (block.type === "toggle") {
149
+ jelly.content += toggle(block.parent, subjelly.content);
150
+ jelly.children = [...jelly.children, ...subjelly.children];
151
+ continue;
152
+ }
153
+ let line_wrap = "";
154
+ if (block.type !== "to_do" &&
155
+ block.type !== "bulleted_list_item" &&
156
+ block.type !== "numbered_list_item") {
157
+ line_wrap = "\n";
158
+ }
159
+ jelly.content += (line_wrap + `${addTabSpace(block.parent, 0)}\n` + line_wrap);
160
+ if (block.type === "child_page") {
161
+ jelly.children = [...jelly.children, block.blockId];
162
+ if (recursive)
163
+ await this.FromPageid(block.blockId, recursive);
164
+ }
165
+ else {
166
+ jelly.content += subjelly.content;
167
+ jelly.children = [...jelly.children, ...subjelly.children];
168
+ }
169
+ }
170
+ return jelly;
171
+ }
172
+ async FromPageid(page_id, recursive = true) {
173
+ if (this.MdCollection.hasOwnProperty(page_id)) {
174
+ return this.MdCollection[page_id];
175
+ }
176
+ const blocks = await this.pageToMarkdown(page_id);
177
+ const jelly = await this.FromBlocks(blocks, recursive);
178
+ const meta = await GetPageMeta(page_id);
179
+ const astro_meta = await this.AssembleAstroFrontmatter(meta);
180
+ jelly.content = astro_meta + jelly.content;
181
+ this.MdCollection[page_id] = jelly;
182
+ return jelly;
183
+ }
184
+ async SaveJelly(fname, dir, jelly) {
185
+ if (jelly === undefined)
186
+ return `failed: ${fname} has empty jelly: `;
187
+ try {
188
+ await fs.mkdir(dir, { recursive: true });
189
+ const filePath = path.join(dir, fname);
190
+ await fs.writeFile(filePath, jelly.content, 'utf-8');
191
+ return `success: ${fname} saved to ${filePath}`;
192
+ }
193
+ catch (error) {
194
+ if (error instanceof Error) {
195
+ return `failed: ${fname} - ${error.message}`;
196
+ }
197
+ else {
198
+ return 'failed: an unknown error occurred';
199
+ }
200
+ }
201
+ }
202
+ async AssembleAstroFrontmatter(page) {
203
+ let frontmatter = "";
204
+ // default layout
205
+ const ischild = this.Posts.filter(post => post.id === page.id).length > 0 ? "" : "../";
206
+ frontmatter += "layout: " + ischild + "../../layouts/MarkdownPostLayout.astro" + "\n";
207
+ // get title
208
+ frontmatter += "title: " + JSON.stringify(page.properties.title?.title?.[0]?.plain_text ?? "") + "\n";
209
+ // get tags
210
+ frontmatter += "tags: " + JSON.stringify((page.properties.tags?.multi_select ?? []).map(tag => tag.name)) + "\n";
211
+ // get date
212
+ frontmatter += "date: " + (page.properties.date?.date?.start ?? "") + "\n";
213
+ // get archived
214
+ frontmatter += "archived: " + (page.properties.archived ? "true" : "false") + "\n";
215
+ // get description
216
+ frontmatter += "desc: " + JSON.stringify(page.properties.description?.rich_text?.[0]?.plain_text ?? "") + "\n";
217
+ return "---\n" + frontmatter + "---\n";
218
+ }
219
+ }
220
+
221
+ function help() {
222
+ const usage = "Usage:\n noblog <SAVE_DIR> <SUB_DIR>";
223
+ const example = "Example:\n noblog";
224
+ const params = "Config:\n save_dir: dir for posts in database. (default: ./src/pages/posts)\n sub_dir: sub pages during collection. (default: nob_children/)";
225
+ const output = usage + "\n" + example + "\n" + params + "\n";
226
+ return output;
227
+ }
228
+ async function main() {
229
+ const argv = process.argv.slice(2);
230
+ if (argv.length > 2) {
231
+ console.error("Error: invallid arg.");
232
+ console.log(help());
233
+ }
234
+ const save_dir = argv[0] ?? "./src/pages/posts";
235
+ const sub_dir = argv[1] ?? "nob_children/";
236
+ const pages = await GetAllPosts();
237
+ const nob = new Noblog(pages, save_dir, sub_dir);
238
+ nob.Collect(true);
239
+ }
240
+ main();
241
+ //# sourceMappingURL=generate.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.esm.js","sources":["../src/lib/nomd/format.ts","../src/lib/notion/client.ts","../src/lib/nomd/nomd.ts","../src/cmds/generate.ts"],"sourcesContent":[null,null,null,null],"names":["notion_client","fmt.toggle","fmt.addTabSpace"],"mappings":"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"}
@@ -0,0 +1,263 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ var path = require('path');
5
+ var fs = require('fs/promises');
6
+ var notionToMd = require('notion-to-md');
7
+ require('node-fetch');
8
+ require('markdown-table');
9
+ require('dotenv/config');
10
+ var retry = require('async-retry');
11
+ var client$1 = require('@notionhq/client');
12
+
13
+ function _interopNamespaceDefault(e) {
14
+ var n = Object.create(null);
15
+ if (e) {
16
+ Object.keys(e).forEach(function (k) {
17
+ if (k !== 'default') {
18
+ var d = Object.getOwnPropertyDescriptor(e, k);
19
+ Object.defineProperty(n, k, d.get ? d : {
20
+ enumerable: true,
21
+ get: function () { return e[k]; }
22
+ });
23
+ }
24
+ });
25
+ }
26
+ n.default = e;
27
+ return Object.freeze(n);
28
+ }
29
+
30
+ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
31
+ var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
32
+
33
+ const addTabSpace = (text, n = 0) => {
34
+ const tab = " ";
35
+ for (let i = 0; i < n; i++) {
36
+ if (text.includes("\n")) {
37
+ const multiLineText = text.split(/(?:^|\n)/).join(`\n${tab}`);
38
+ text = tab + multiLineText;
39
+ }
40
+ else
41
+ text = tab + text;
42
+ }
43
+ return text;
44
+ };
45
+ const toggle = (summary, children) => {
46
+ if (!summary)
47
+ return children || "";
48
+ return `<details>
49
+ <summary>${summary}</summary>
50
+ ${children || ""}
51
+ </details>\n\n`;
52
+ };
53
+
54
+ const NOTION_API_SECRET = process.env.NOTION_API_SECRET ?? '';
55
+ const NOBLOG_DATABASE_ID = process.env.NOBLOG_DATABASE_ID ?? '';
56
+ const client = new client$1.Client({
57
+ auth: NOTION_API_SECRET,
58
+ });
59
+ const numberOfRetry = 2;
60
+ async function GetAllPosts() {
61
+ const params = {
62
+ database_id: NOBLOG_DATABASE_ID,
63
+ filter: {
64
+ and: [{
65
+ property: 'publish',
66
+ checkbox: { equals: true, },
67
+ }]
68
+ },
69
+ sorts: [{
70
+ property: 'date',
71
+ direction: 'descending',
72
+ }],
73
+ page_size: 100,
74
+ };
75
+ let results = [];
76
+ while (true) {
77
+ const res = await retry(async (bail) => {
78
+ try {
79
+ return (await client.databases.query(params));
80
+ }
81
+ catch (error) {
82
+ if (error instanceof client$1.APIResponseError) {
83
+ if (error.status && error.status >= 400 && error.status < 500) {
84
+ bail(error);
85
+ }
86
+ }
87
+ throw error;
88
+ }
89
+ }, { retries: numberOfRetry, });
90
+ results = results.concat(res.results);
91
+ if (!res.has_more) {
92
+ break;
93
+ }
94
+ params['start_cursor'] = res.next_cursor;
95
+ }
96
+ return results;
97
+ }
98
+ async function GetPageMeta(page_id) {
99
+ const result = await retry(async (bail) => {
100
+ try {
101
+ return (await client.pages.retrieve({ page_id: page_id }));
102
+ }
103
+ catch (error) {
104
+ if (error instanceof client$1.APIResponseError) {
105
+ if (error.status && error.status >= 400 && error.status < 500) {
106
+ bail(error);
107
+ }
108
+ }
109
+ throw error;
110
+ }
111
+ }, { retries: numberOfRetry, });
112
+ return result;
113
+ }
114
+
115
+ class Noblog extends notionToMd.NotionToMarkdown {
116
+ Posts = [];
117
+ SavePath = "./src/pages/posts/";
118
+ ChildPath = "nob_children/";
119
+ MdCollection = {};
120
+ constructor(posts, save_path, child_path) {
121
+ super({ notionClient: client });
122
+ this.Posts = posts;
123
+ if (child_path != undefined) {
124
+ this.ChildPath = child_path;
125
+ }
126
+ if (save_path != undefined) {
127
+ this.SavePath = save_path;
128
+ }
129
+ this.setCustomTransformer("child_page", async (block) => {
130
+ let path = this.ChildPath;
131
+ const page = block;
132
+ if (!page?.id) {
133
+ return false;
134
+ }
135
+ if (this.Posts.filter(post => post.id === page.child_page.title).length > 0) {
136
+ path = "";
137
+ }
138
+ return `[${page.child_page.title}](${path}${page.id})`;
139
+ });
140
+ }
141
+ async Collect(recur = true) {
142
+ const save_dir = this.SavePath;
143
+ const sub_dir = path__namespace.join(save_dir, this.ChildPath);
144
+ const futs = this.Posts.map(page => {
145
+ return this.FromPageid(page.id, recur);
146
+ });
147
+ try {
148
+ await Promise.all(futs);
149
+ for (const pageid of Object.keys(this.MdCollection)) {
150
+ let fpath = sub_dir;
151
+ if (this.Posts.find(page => page.id === pageid))
152
+ fpath = save_dir;
153
+ await this.SaveJelly(pageid + ".md", fpath, this.MdCollection[pageid]);
154
+ }
155
+ console.log(`success: finish dump all files to "${save_dir}"`);
156
+ }
157
+ catch (error) {
158
+ if (error instanceof Error) {
159
+ console.log(`failed: consider run verbose with v=true - ${error.message}`);
160
+ }
161
+ else {
162
+ console.log('failed: an unknown error occurred');
163
+ }
164
+ }
165
+ }
166
+ async FromBlocks(blocks, recursive) {
167
+ let jelly = { content: "", children: [] };
168
+ for (const block of blocks) {
169
+ const subjelly = await this.FromBlocks(block.children, recursive);
170
+ if (block.type === "toggle") {
171
+ jelly.content += toggle(block.parent, subjelly.content);
172
+ jelly.children = [...jelly.children, ...subjelly.children];
173
+ continue;
174
+ }
175
+ let line_wrap = "";
176
+ if (block.type !== "to_do" &&
177
+ block.type !== "bulleted_list_item" &&
178
+ block.type !== "numbered_list_item") {
179
+ line_wrap = "\n";
180
+ }
181
+ jelly.content += (line_wrap + `${addTabSpace(block.parent, 0)}\n` + line_wrap);
182
+ if (block.type === "child_page") {
183
+ jelly.children = [...jelly.children, block.blockId];
184
+ if (recursive)
185
+ await this.FromPageid(block.blockId, recursive);
186
+ }
187
+ else {
188
+ jelly.content += subjelly.content;
189
+ jelly.children = [...jelly.children, ...subjelly.children];
190
+ }
191
+ }
192
+ return jelly;
193
+ }
194
+ async FromPageid(page_id, recursive = true) {
195
+ if (this.MdCollection.hasOwnProperty(page_id)) {
196
+ return this.MdCollection[page_id];
197
+ }
198
+ const blocks = await this.pageToMarkdown(page_id);
199
+ const jelly = await this.FromBlocks(blocks, recursive);
200
+ const meta = await GetPageMeta(page_id);
201
+ const astro_meta = await this.AssembleAstroFrontmatter(meta);
202
+ jelly.content = astro_meta + jelly.content;
203
+ this.MdCollection[page_id] = jelly;
204
+ return jelly;
205
+ }
206
+ async SaveJelly(fname, dir, jelly) {
207
+ if (jelly === undefined)
208
+ return `failed: ${fname} has empty jelly: `;
209
+ try {
210
+ await fs__namespace.mkdir(dir, { recursive: true });
211
+ const filePath = path__namespace.join(dir, fname);
212
+ await fs__namespace.writeFile(filePath, jelly.content, 'utf-8');
213
+ return `success: ${fname} saved to ${filePath}`;
214
+ }
215
+ catch (error) {
216
+ if (error instanceof Error) {
217
+ return `failed: ${fname} - ${error.message}`;
218
+ }
219
+ else {
220
+ return 'failed: an unknown error occurred';
221
+ }
222
+ }
223
+ }
224
+ async AssembleAstroFrontmatter(page) {
225
+ let frontmatter = "";
226
+ // default layout
227
+ const ischild = this.Posts.filter(post => post.id === page.id).length > 0 ? "" : "../";
228
+ frontmatter += "layout: " + ischild + "../../layouts/MarkdownPostLayout.astro" + "\n";
229
+ // get title
230
+ frontmatter += "title: " + JSON.stringify(page.properties.title?.title?.[0]?.plain_text ?? "") + "\n";
231
+ // get tags
232
+ frontmatter += "tags: " + JSON.stringify((page.properties.tags?.multi_select ?? []).map(tag => tag.name)) + "\n";
233
+ // get date
234
+ frontmatter += "date: " + (page.properties.date?.date?.start ?? "") + "\n";
235
+ // get archived
236
+ frontmatter += "archived: " + (page.properties.archived ? "true" : "false") + "\n";
237
+ // get description
238
+ frontmatter += "desc: " + JSON.stringify(page.properties.description?.rich_text?.[0]?.plain_text ?? "") + "\n";
239
+ return "---\n" + frontmatter + "---\n";
240
+ }
241
+ }
242
+
243
+ function help() {
244
+ const usage = "Usage:\n noblog <SAVE_DIR> <SUB_DIR>";
245
+ const example = "Example:\n noblog";
246
+ const params = "Config:\n save_dir: dir for posts in database. (default: ./src/pages/posts)\n sub_dir: sub pages during collection. (default: nob_children/)";
247
+ const output = usage + "\n" + example + "\n" + params + "\n";
248
+ return output;
249
+ }
250
+ async function main() {
251
+ const argv = process.argv.slice(2);
252
+ if (argv.length > 2) {
253
+ console.error("Error: invallid arg.");
254
+ console.log(help());
255
+ }
256
+ const save_dir = argv[0] ?? "./src/pages/posts";
257
+ const sub_dir = argv[1] ?? "nob_children/";
258
+ const pages = await GetAllPosts();
259
+ const nob = new Noblog(pages, save_dir, sub_dir);
260
+ nob.Collect(true);
261
+ }
262
+ main();
263
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sources":["../src/lib/nomd/format.ts","../src/lib/notion/client.ts","../src/lib/nomd/nomd.ts","../src/cmds/generate.ts"],"sourcesContent":[null,null,null,null],"names":["Client","APIResponseError","NotionToMarkdown","notion_client","path","fmt.toggle","fmt.addTabSpace","fs"],"mappings":"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"}
@@ -35,4 +35,4 @@ export declare const divider: () => string;
35
35
  export declare const toggle: (summary?: string, children?: string) => string;
36
36
  export declare const table: (cells: string[][]) => string;
37
37
  export {};
38
- //# sourceMappingURL=cvtmd.d.ts.map
38
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/lib/nomd/format.ts"],"names":[],"mappings":"AAIA,KAAK,WAAW,GACZ;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC5D,IAAI,CAAC;AAET,eAAO,MAAM,UAAU,SAAU,MAAM,WAEtC,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,WAE1C,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,WAEhC,CAAC;AAEF,eAAO,MAAM,MAAM,SAAU,MAAM,WAElC,CAAC;AAEF,eAAO,MAAM,aAAa,SAAU,MAAM,WAEzC,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU,MAAM,WAErC,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,QAAQ,MAAM,WAE9C,CAAC;AAEF,eAAO,MAAM,SAAS,SAAU,MAAM,aAAa,MAAM,WAMxD,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,MAAM,WAIpC,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,MAAM,WAEpC,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,MAAM,WAEpC,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,MAAM,WAEpC,CAAC;AAEF,eAAO,MAAM,KAAK,SAAU,MAAM,WAGjC,CAAC;AAEF,eAAO,MAAM,OAAO,SAAU,MAAM,SAAS,WAAW,WAQvD,CAAC;AAEF,eAAO,MAAM,MAAM,SAAU,MAAM,UAAU,MAAM,WAGlD,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,WAAW,OAAO,WAElD,CAAC;AAEF,eAAO,MAAM,KAAK,QACX,MAAM,QACL,MAAM,oBACK,OAAO,KACvB,QAAQ,MAAM,CAuBhB,CAAC;AAEF,eAAO,MAAM,WAAW,SAAU,MAAM,uBASvC,CAAC;AAEF,eAAO,MAAM,OAAO,cAEnB,CAAC;AAEF,eAAO,MAAM,MAAM,aAAc,MAAM,aAAa,MAAM,WAMzD,CAAC;AAEF,eAAO,MAAM,KAAK,UAAW,MAAM,EAAE,EAAE,WAEtC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { NotionToMarkdown } from "notion-to-md";
2
+ import type { Page } from '../notion/object.js';
2
3
  type MdBlock = {
3
4
  type?: string;
4
5
  blockId: string;
@@ -10,11 +11,16 @@ export type MdJelly = {
10
11
  children: string[];
11
12
  };
12
13
  export declare class Noblog extends NotionToMarkdown {
14
+ Posts: Page[];
15
+ SavePath: string;
16
+ ChildPath: string;
13
17
  MdCollection: Record<string, MdJelly>;
14
- constructor();
18
+ constructor(posts: Page[], save_path?: string, child_path?: string);
19
+ Collect(recur?: boolean): Promise<void>;
15
20
  FromBlocks(blocks: MdBlock[], recursive: boolean): Promise<MdJelly>;
16
21
  FromPageid(page_id: string, recursive?: boolean): Promise<MdJelly | undefined>;
17
22
  SaveJelly(fname: string, dir: string, jelly: MdJelly | undefined): Promise<string>;
23
+ AssembleAstroFrontmatter(page: Page): Promise<string>;
18
24
  }
19
25
  export {};
20
26
  //# sourceMappingURL=nomd.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nomd.d.ts","sourceRoot":"","sources":["../../../src/lib/nomd/nomd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAOhD,KAAK,OAAO,GAAG;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAA;AAED,qBAAa,MAAO,SAAQ,gBAAgB;IAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;;IAWrC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BnE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc;IAarD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAezF"}
1
+ {"version":3,"file":"nomd.d.ts","sourceRoot":"","sources":["../../../src/lib/nomd/nomd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIhD,KAAK,OAAO,GAAG;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAA;AAED,qBAAa,MAAO,SAAQ,gBAAgB;IAC1C,KAAK,EAAE,IAAI,EAAE,CAAM;IACnB,QAAQ,EAAE,MAAM,CAAwB;IACxC,SAAS,EAAE,MAAM,CAAmB;IACpC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;gBAE/B,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;IAsB5D,OAAO,CAAC,KAAK,GAAE,OAAc;IAwB7B,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IA8BnE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,OAAc;IAarD,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBlF,wBAAwB,CAAC,IAAI,EAAE,IAAI;CAiB1C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noblog",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "Generate static blog contnet from a Notion.so table.",
5
5
  "author": "humbornjo",
6
6
  "license": "MIT",
@@ -1,48 +0,0 @@
1
- import * as path from "path";
2
- import { Logger } from "tslog";
3
- import { Noblog } from "../lib/nomd/nomd.js";
4
- import { GetAllPosts } from "../lib/notion/client.js";
5
- let save_dir = "./src/pages/posts/";
6
- let sub_dir = "nob_children";
7
- const nob = new Noblog();
8
- const logger = new Logger({ name: "noblog" });
9
- function help() {
10
- const usage = "Usage: noblog <SAVE_DIR>";
11
- const example = "Example:\n noblog .";
12
- const output = usage + "\n" + example + "\n";
13
- return output;
14
- }
15
- async function main() {
16
- const argv = process.argv.slice(2);
17
- if (argv.length > 1) {
18
- console.error("Error: invallid arg.");
19
- console.log(help());
20
- }
21
- save_dir = argv[0] ?? save_dir;
22
- sub_dir = path.join(save_dir, sub_dir);
23
- const pages = await GetAllPosts();
24
- const futures = pages.map(page => {
25
- return nob.FromPageid(page.id);
26
- });
27
- try {
28
- await Promise.all(futures);
29
- for (const pageid of Object.keys(nob.MdCollection)) {
30
- let fpath = sub_dir;
31
- if (pages.find(page => page.id === pageid))
32
- fpath = save_dir;
33
- const log = await nob.SaveJelly(pageid, fpath, nob.MdCollection[pageid]);
34
- logger.info(log);
35
- }
36
- console.log(`success: finish dump all files to "${save_dir}"`);
37
- }
38
- catch (error) {
39
- if (error instanceof Error) {
40
- console.log(`failed: consider run verbose with v=true - ${error.message}`);
41
- }
42
- else {
43
- console.log('failed: an unknown error occurred');
44
- }
45
- }
46
- }
47
- main();
48
- //# sourceMappingURL=generate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/cmds/generate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,IAAI,QAAQ,GAAG,oBAAoB,CAAA;AACnC,IAAI,OAAO,GAAG,cAAc,CAAA;AAC5B,MAAM,GAAG,GAAG,IAAI,MAAM,EAAE,CAAA;AACxB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAE9C,SAAS,IAAI;IACX,MAAM,KAAK,GAAG,0BAA0B,CAAC;IACzC,MAAM,OAAO,GAAG,sBAAsB,CAAC;IAEvC,MAAM,MAAM,GAAG,KAAK,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;IACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACtB,CAAC;IACD,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAEtC,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACnD,IAAI,KAAK,GAAG,OAAO,CAAC;YACpB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC;gBACxC,KAAK,GAAG,QAAQ,CAAA;YAClB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;YACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,sCAAsC,QAAQ,GAAG,CAAC,CAAA;IAChE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,8CAA8C,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAA"}