markdown2notion
Advanced tools
+192
| # markdown2notion | ||
| [](https://badge.fury.io/js/markdown2notion) [](https://opensource.org/licenses/MIT) [](https://codecov.io/github/Rujuu-prog/markdown2notion) | ||
| notionのDBにmarkdownファイルを変換するツールです。フォルダ構造もタグとして表現されます。 | ||
| > notionのtokenの発行方法やDBとの紐付けかたは[こちら](https://developers.notion.com/docs/getting-started)を参照してください。 | ||
| ## 🔗 リンク | ||
| English👉[README.md](https://github.com/Rujuu-prog/markdownToNotion/blob/main/README.md) | ||
| ## 🔽 インストール方法 | ||
| ```bash | ||
| npm install markdown2notion | ||
| ``` | ||
| ```bash | ||
| yarn add markdown2notion | ||
| ``` | ||
| ## 🔧 使い方 | ||
| javascriptとtypescriptで使えます。 | ||
| ### markdownToNotion() | ||
| ```typescript | ||
| import {markdownToNotion} from 'markdown2notion' | ||
| async function main(){ | ||
| try{ | ||
| await markdownToNotion( | ||
| 'notion_token', | ||
| 'notion database id', | ||
| 'markdownファイルが入っているフォルダのパス', | ||
| 'ファイル名を表示するnotionの列名。 デフォルトはTitle', | ||
| 'タグとしてフォルダ名を表示する列名。 デフォルトはTags') | ||
| } catch (error) { | ||
| console.error(error); | ||
| } | ||
| } | ||
| ``` | ||
| ### searchPage() | ||
| > ページのURLはmarkdownToNotion()を使うたびに変更されるため、URLを使って何かしたい場合は、この関数でページのURLを取得してください。 | ||
| ```typescript | ||
| import {searchPage} from 'markdown2notion' | ||
| async function main(){ | ||
| try{ | ||
| const result = await searchPage( | ||
| 'notion token', | ||
| 'notion database id', | ||
| 'ファイル名を表示するnotionの列名。 デフォルトはTitle', | ||
| 'タグとしてフォルダ名を表示する列名。 デフォルトはTags' | ||
| '検索したいファイル名', | ||
| '検索したいファイルが入っているフォルダ名。配列で指定。' | ||
| ) | ||
| // 同じファイル名のファイルが存在している場合、複数のページが返ってきます。 | ||
| console.log(result)// notionのpageのobjectが返ってきます。urlはresult['results'][0]['url']とかで取れます。 | ||
| } catch (error) { | ||
| console.error(error) | ||
| } | ||
| } | ||
| ``` | ||
| ## 🔰 使用例 | ||
| ### 🔽markdownToNotion() | ||
| ### フォルダ構成 | ||
| ```bash | ||
| ├── docs | ||
| │ ├── sample1 | ||
| │ │ ├── sample1_1 | ||
| │ │ │ ├── sampleContent1_1.md | ||
| │ │ ├── sampleContent1.md | ||
| │ ├── sample2 | ||
| │ │ ├── sampleContent2.md | ||
| ├── src | ||
| │ ├── index.ts | ||
| ├── .env | ||
| ``` | ||
| ### notion DB | ||
|  | ||
| ### マークダウンファイルのサンプル | ||
| [Sample Markdown Folder](https://github.com/Rujuu-prog/markdown2notion/tree/main/sample/docs) | ||
| ### index.ts | ||
| ```typescript | ||
| import {markdownToNotion} from 'markdown2notion' | ||
| import * as dotenv from 'dotenv' | ||
| async function main() { | ||
| dotenv.config() | ||
| const token = process.env.NOTION_TOKEN | ||
| const databaseId = process.env.NOTION_DATABASE_ID | ||
| try { | ||
| await markdownToNotion(token, databaseId, 'docs', 'Title', 'Tags'); | ||
| } catch (error) { | ||
| console.error(error); | ||
| } | ||
| } | ||
| main() | ||
| ``` | ||
| ### .env | ||
| ```.env | ||
| NOTION_TOKEN=secret_xxxxxxxxxxxxxx | ||
| NOTION_DATABASE_ID=xxxxxxxxxxxxxxx | ||
| ``` | ||
| ### index.tsの実行結果 | ||
| フォルダ構造がタグとして表現されます。 | ||
|  | ||
| タグでフィルタリングすることで、見たいファイルをすぐに探すことができます。 | ||
|  | ||
| ### 🔽searchPage() | ||
| ### index.ts | ||
| ```typescript | ||
| import {searchPage} from 'markdown2notion' | ||
| import * as dotenv from 'dotenv' | ||
| async function main() { | ||
| dotenv.config() | ||
| const token = process.env.NOTION_TOKEN | ||
| const databaseId = process.env.NOTION_DATABASE_ID | ||
| const title = 'sampleContent1_1'; | ||
| const tags = ['sample1_1']; | ||
| try { | ||
| const result = await searchPage(token, databaseId, 'Title', 'Tags', title, tags); | ||
| console.log(result['results'][0]['url']); | ||
| } catch (error) { | ||
| console.error('Error searching for page:', error); | ||
| } | ||
| } | ||
| main() | ||
| ``` | ||
| ### result | ||
| ```bash | ||
| { | ||
| object: 'list', | ||
| results: [ | ||
| { | ||
| object: 'page', | ||
| id: '33.....', | ||
| created_time: '2023-03-29T14:15:00.000Z', | ||
| last_edited_time: '2023-03-29T14:15:00.000Z', | ||
| created_by: [Object], | ||
| last_edited_by: [Object], | ||
| cover: null, | ||
| icon: null, | ||
| parent: [Object], | ||
| archived: false, | ||
| properties: [Object], | ||
| url: 'https://www.notion.so/sampleContent1_1-33...' | ||
| } | ||
| ], | ||
| next_cursor: null, | ||
| has_more: false, | ||
| type: 'page', | ||
| page: {} | ||
| } | ||
| ``` | ||
| <h2 style="color:red;">👀 注意点</h2> | ||
| 操作対象のnotionのDB上に、ファイル名と同じページがある場合は上書きされます。 | ||
| ## ライセンス | ||
| MIT |
+2
-2
@@ -1,2 +0,2 @@ | ||
| export { markdownToNotion } from "./markdownToNotion"; | ||
| export { searchPage } from "./searchPage"; | ||
| export { markdownToNotion } from './markdownToNotion'; | ||
| export { searchPage } from './searchPage'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA"} |
@@ -0,1 +1,3 @@ | ||
| import { Client } from '@notionhq/client'; | ||
| import { readMD } from './readMD'; | ||
| /** | ||
@@ -13,1 +15,2 @@ * Import Markdown files from the specified folder to a Notion database. | ||
| export declare function markdownToNotion(token: string | undefined, databaseId: string | undefined, mdFolderPath: string, fileNameColumn?: string, tagsColumn?: string): Promise<void>; | ||
| export declare function createPage(notion: Client, databaseId: string, md: ReturnType<typeof readMD>[number], fileNameColumn?: string, tagsColumn?: string): Promise<void>; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.markdownToNotion = void 0; | ||
| exports.createPage = exports.markdownToNotion = void 0; | ||
| const client_1 = require("@notionhq/client"); | ||
@@ -25,3 +25,3 @@ const readMD_1 = require("./readMD"); | ||
| async function markdownToNotion(token, databaseId, mdFolderPath, fileNameColumn = 'Title', tagsColumn = 'Tags') { | ||
| if (!token || !databaseId) { | ||
| if (token === undefined || databaseId === undefined) { | ||
| throw new Error('NOTION_TOKEN or NOTION_DATABASE_ID is missing'); | ||
@@ -73,3 +73,3 @@ } | ||
| const pageId = Object.keys(existingPageTitles).find((key) => existingPageTitles[key] === md.fileName); | ||
| if (pageId) { | ||
| if (pageId !== undefined) { | ||
| await archivePage(notion, pageId); | ||
@@ -88,3 +88,3 @@ } | ||
| async function archivePage(notion, pageId) { | ||
| const resDelete = await notion.pages.update({ | ||
| await notion.pages.update({ | ||
| page_id: pageId, | ||
@@ -95,3 +95,3 @@ archived: true | ||
| async function createPage(notion, databaseId, md, fileNameColumn = 'Title', tagsColumn = 'Tags') { | ||
| const resCreate = await notion.pages.create({ | ||
| await notion.pages.create({ | ||
| parent: { | ||
@@ -118,2 +118,3 @@ type: 'database_id', | ||
| } | ||
| exports.createPage = createPage; | ||
| //# sourceMappingURL=markdownToNotion.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"markdownToNotion.js","sourceRoot":"","sources":["../src/markdownToNotion.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"markdownToNotion.js","sourceRoot":"","sources":["../src/markdownToNotion.ts"],"names":[],"mappings":"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"} |
+4
-1
@@ -36,3 +36,3 @@ "use strict"; | ||
| // ページ内リンクの正規表現 | ||
| const linkPattern = /\[([^\]]+)]\(#([^\)]+)\)/g; | ||
| const linkPattern = /\[([^\]]+)]\(#([^)]+)\)/g; | ||
| return content.replace(linkPattern, '$1'); | ||
@@ -62,3 +62,6 @@ } | ||
| const pathParts = relativePath.split(path.sep); | ||
| // ファイル名と拡張子の両方が存在しないファイルはありえないため許容 | ||
| // eslint-disable-next-line @typescript-eslint/no-non-null-assertion | ||
| const fileNameWithExtension = pathParts.pop(); | ||
| console.log('file:' + fileNameWithExtension); | ||
| const fileNameWithoutExtension = path.basename(fileNameWithExtension, '.md'); | ||
@@ -65,0 +68,0 @@ const folderNames = pathParts.map(folderName => ({ name: folderName })); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"readMD.js","sourceRoot":"","sources":["../src/readMD.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAC5B,8DAAgC;AAChC,gDAAqD;AAYrD,SAAS,mBAAmB,CAAC,OAAe;IACxC,eAAe;IACf,MAAM,WAAW,GAAG,2BAA2B,CAAA;IAC/C,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAEH;;;;;;GAMG;AACH,SAAgB,MAAM,CAAE,OAAe;IACrC,MAAM,MAAM,GAAuB,EAAE,CAAA;IAErC,SAAS,IAAI,CAAE,WAAmB;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAEpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE;gBACvB,IAAI,CAAC,SAAS,CAAC,CAAA;aAChB;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACvD,MAAM,OAAO,GAAG,IAAA,qBAAM,EAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;gBACnE,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;gBAClD,MAAM,YAAY,GAAG,IAAA,0BAAgB,EAAC,aAAa,CAAC,CAAA;gBACpD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBACtD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAE9C,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,EAAY,CAAA;gBACvD,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;gBAC5E,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;gBAEvE,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC,CAAA;aAC/E;SACF;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAA;IACb,OAAO,MAAM,CAAA;AACf,CAAC;AA7BD,wBA6BC;AAED,0CAA0C;AAC1C,8BAA8B;AAC9B,oCAAoC"} | ||
| {"version":3,"file":"readMD.js","sourceRoot":"","sources":["../src/readMD.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAC5B,8DAAgC;AAChC,gDAAqD;AAYrD,SAAS,mBAAmB,CAAE,OAAe;IAC3C,eAAe;IACf,MAAM,WAAW,GAAG,0BAA0B,CAAA;IAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,MAAM,CAAE,OAAe;IACrC,MAAM,MAAM,GAAuB,EAAE,CAAA;IAErC,SAAS,IAAI,CAAE,WAAmB;QAChC,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAEpE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAEpD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,CAAA;YACjB,CAAC;iBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,MAAM,OAAO,GAAG,IAAA,qBAAM,EAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAA;gBACnE,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;gBAClD,MAAM,YAAY,GAAG,IAAA,0BAAgB,EAAC,aAAa,CAAC,CAAA;gBACpD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;gBACtD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAE9C,mCAAmC;gBACnC,oEAAoE;gBACpE,MAAM,qBAAqB,GAAG,SAAS,CAAC,GAAG,EAAG,CAAA;gBAC9C,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,qBAAqB,CAAC,CAAA;gBAC5C,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAA;gBAC5E,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAA;gBAEvE,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,wBAAwB,EAAE,YAAY,EAAE,CAAC,CAAA;YAChF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,CAAA;IACb,OAAO,MAAM,CAAA;AACf,CAAC;AAhCD,wBAgCC;AAED,0CAA0C;AAC1C,8BAA8B;AAC9B,oCAAoC"} |
@@ -17,3 +17,3 @@ interface QueryResult { | ||
| */ | ||
| export declare function searchPage(token: string, databaseId: string, fileNameColumn: string | undefined, tagsColumn: string | undefined, title: string, tags: Array<string>): Promise<QueryResult>; | ||
| export declare function searchPage(token: string, databaseId: string, fileNameColumn: string | undefined, tagsColumn: string | undefined, title: string, tags: string[]): Promise<QueryResult>; | ||
| export {}; |
@@ -22,4 +22,4 @@ "use strict"; | ||
| multi_select: { | ||
| contains: tag, | ||
| }, | ||
| contains: tag | ||
| } | ||
| })); | ||
@@ -35,8 +35,8 @@ // Perform the database query with the specified filters | ||
| rich_text: { | ||
| equals: title, | ||
| }, | ||
| equals: title | ||
| } | ||
| }, | ||
| ...tagFilters, | ||
| ], | ||
| }, | ||
| ...tagFilters | ||
| ] | ||
| } | ||
| }); | ||
@@ -43,0 +43,0 @@ return response; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"searchPage.js","sourceRoot":"","sources":["../src/searchPage.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAS1C;;;;;;;;;;GAUG;AACI,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,UAAkB,EAClB,iBAAyB,OAAO,EAChC,aAAqB,MAAM,EAC3B,KAAa,EACb,IAAmB;IAEnB,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAE3C,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE;YACZ,QAAQ,EAAE,GAAG;SACd;KACF,CAAC,CAAC,CAAC;IAEJ,wDAAwD;IACxD,IAAI;QACF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5C,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH;wBACE,QAAQ,EAAE,cAAc;wBACxB,SAAS,EAAE;4BACT,MAAM,EAAE,KAAK;yBACd;qBACF;oBACD,GAAG,UAAU;iBACd;aACF;SACF,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;KACjB;IAAC,OAAO,KAAK,EAAE;QACd,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;KACb;AACH,CAAC;AAzCD,gCAyCC"} | ||
| {"version":3,"file":"searchPage.js","sourceRoot":"","sources":["../src/searchPage.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AASzC;;;;;;;;;;GAUG;AACI,KAAK,UAAU,UAAU,CAC9B,KAAa,EACb,UAAkB,EAClB,iBAAyB,OAAO,EAChC,aAAqB,MAAM,EAC3B,KAAa,EACb,IAAc;IAEd,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAE1C,mDAAmD;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClC,QAAQ,EAAE,UAAU;QACpB,YAAY,EAAE;YACZ,QAAQ,EAAE,GAAG;SACd;KACF,CAAC,CAAC,CAAA;IAEH,wDAAwD;IACxD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;YAC5C,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH;wBACE,QAAQ,EAAE,cAAc;wBACxB,SAAS,EAAE;4BACT,MAAM,EAAE,KAAK;yBACd;qBACF;oBACD,GAAG,UAAU;iBACd;aACF;SACF,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAA;QAC3D,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAzCD,gCAyCC"} |
+14
-6
| { | ||
| "name": "markdown2notion", | ||
| "version": "1.1.0", | ||
| "version": "1.1.1", | ||
| "description": "Convert markdown files to notion database. The folder structure is also fully represented as tags in notion.", | ||
@@ -26,4 +26,6 @@ "author": "Rujuu", | ||
| "scripts": { | ||
| "lint": "eslint --fix 'src/**/*.ts'", | ||
| "build": "yarn run tsc" | ||
| "lint": "eslint --fix '{src,__tests__}/**/*.ts'", | ||
| "build": "yarn run tsc", | ||
| "test": "jest", | ||
| "test:coverage": "jest --coverage" | ||
| }, | ||
@@ -37,10 +39,16 @@ "dependencies": { | ||
| "devDependencies": { | ||
| "@typescript-eslint/eslint-plugin": "^5.43.0", | ||
| "@types/jest": "^29.5.12", | ||
| "@typescript-eslint/eslint-plugin": "^7.0.1", | ||
| "@typescript-eslint/parser": "^7.8.0", | ||
| "dotenv": "^16.0.3", | ||
| "eslint": "^8.0.1", | ||
| "eslint-config-standard-with-typescript": "^34.0.1", | ||
| "eslint-config-love": "^47.0.0", | ||
| "eslint-config-standard-with-typescript": "^43.0.1", | ||
| "eslint-plugin-import": "^2.25.2", | ||
| "eslint-plugin-jest": "^28.5.0", | ||
| "eslint-plugin-n": "^15.0.0", | ||
| "eslint-plugin-promise": "^6.0.0" | ||
| "eslint-plugin-promise": "^6.0.0", | ||
| "jest": "^29.7.0", | ||
| "ts-jest": "^29.1.2" | ||
| } | ||
| } |
+1
-2
| # markdown2notion | ||
| [](https://badge.fury.io/js/markdown2notion) [](https://opensource.org/licenses/MIT) | ||
| [](https://badge.fury.io/js/markdown2notion) [](https://opensource.org/licenses/MIT) [](https://codecov.io/github/Rujuu-prog/markdown2notion) | ||
@@ -191,2 +191,1 @@ Convert markdown files to notion database. The folder structure is also fully represented as tags in notion. | ||
| MIT | ||
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
34630
23.35%17
6.25%387
1.84%13
85.71%191
-0.52%