{"_id":"@amsyn/notion-parse","_rev":"8-355dc84ec2b046d198e8dccbbd90fae8","name":"@amsyn/notion-parse","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.1":{"name":"@amsyn/notion-parse","version":"1.0.1","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.1","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"138c0ffde62ef2afafea144420d0d1dc02ccb529","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.1.tgz","fileCount":7,"integrity":"sha512-Oj2AuSOez0nUe/aGsXogq2f4PpB9XjckjjTyJGuzSf8IboLBDYU+Fh1YSOvF+rjWzs4HKdikQZ5E9h6Du0rTzQ==","signatures":[{"sig":"MEQCICYGJIR8CXJxQFRqTH8PFJbA9nGLTKUEM/i0RbXds1lPAiA6eP9bVNczhIeMvZIpSTL0rl6C3uFKA4e4o9LGOAcMGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33757},"main":"lib/index.js","_from":"file:amsyn-notion-parse-1.0.1.tgz","types":"lib/index.d.ts","scripts":{"test":"jest --verbose","build":"tsc","release":"release-it","test:watch":"jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_resolved":"C:\\Users\\yeung\\AppData\\Local\\Temp\\cadd9d8dedd2dbf49dab968bd4ce7508\\amsyn-notion-parse-1.0.1.tgz","_integrity":"sha512-Oj2AuSOez0nUe/aGsXogq2f4PpB9XjckjjTyJGuzSf8IboLBDYU+Fh1YSOvF+rjWzs4HKdikQZ5E9h6Du0rTzQ==","_npmVersion":"10.9.3","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","ts-jest":"^29.4.11","release-it":"^17.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.1_1781872442750_0.5376205135207768","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@amsyn/notion-parse","version":"1.0.2","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.2","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"fe9133bd7d24bc496289342c06545311a852eb9c","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.2.tgz","fileCount":7,"integrity":"sha512-Yic+yRctD6OQGYsyMKnHH2BXT+2PEhvkaX9keXSDi15dU6YBywQZNjRFV80nNC2ZeTeLrGGQ8uqI1q7z/svPkQ==","signatures":[{"sig":"MEUCIQCvKOIe7g0FdF9sFfgNtMTYVnezo1ixs32WBK6EN8yIgwIgXWBcYfRgA8hjiTz3jU5jYzXd14Qzp+a+cNOVyMlZWOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34420},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","gitHead":"2e51670cd523c01ae0679e6a94dbb5515482854c","scripts":{"lint":"eslint src/**/*.ts","test":"jest --verbose","build":"tsc","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","release-it":"^17.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.2_1782067789182_0.4582637851716904","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@amsyn/notion-parse","version":"1.0.3","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.3","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"af278e14656b0957a8f78703c443ae94b1be14c6","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.3.tgz","fileCount":7,"integrity":"sha512-o68UTxqCPI+SpnEuUz+62tu2Z5WWoADcE73p+uxsGN4ijs1kE9Nl88hfl01t72XWbm9JU8yr8yRyuEJLaoSYQw==","signatures":[{"sig":"MEQCIFVmYla9lMeXf96IiPnGAqgcn0L+zXrfaFL84izZKmsbAiBkzLjD6vs1y9hxjGrJrZMkAr99c7aGK1u2FTfIkQb6vQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35557},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","gitHead":"22569571cd41f904d230c91c1ba954477b327a4a","scripts":{"lint":"eslint src/**/*.ts","test":"jest --verbose","build":"tsc","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","release-it":"^17.0.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.3_1782095402398_0.3337032988706481","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@amsyn/notion-parse","version":"1.0.4","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.4","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"90da4ca54fe7c9a44846adcc659e8d1d5c127329","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.4.tgz","fileCount":7,"integrity":"sha512-kFwpvr/NTFDvL9lIcdmozX2s4jR+ppDE0QxKL4KKK57yNb9kCUmUvkI4Ac196JK6UbcmaqB9XH9YjQ5aArCgcw==","signatures":[{"sig":"MEQCIEj1YtdDErQZQed9XXRfZMjXhF3cjV+wtSuSxoNrDkGFAiADoiuOKO7iSRGdlPXqMM8exwQ2wuV2QvVXjhUHq+OuXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35495},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","gitHead":"d9937f97a86cad1cebead8e9376970e0bdb97fa0","scripts":{"lint":"eslint src/**/*.ts","test":"jest --verbose","build":"tsc","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","release-it":"^20.2.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.4_1782105868221_0.4476039695152976","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@amsyn/notion-parse","version":"1.0.5","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.5","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"e7a9cd0382d3cd1883957e866f0b443d5a289d0f","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.5.tgz","fileCount":6,"integrity":"sha512-S0tEiKwLyXiFvgdl/fvcjC4NkrlfhknXgbWAr5aDOulK4Pjj6bxqX9KvfaW8QVvTc+UNwQ88M9MUVoy2OIsRCQ==","signatures":[{"sig":"MEYCIQC7lUh1czb2kRV1/atvl93oVgkWQhdU7m1GwYCqpGItogIhAOKDp47v14F8/NnCG6A68SjsCRQXjKj4It2THUd1EbqG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18036},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"09a93c8f9c56f82bcef046d377790af07c245ee8","scripts":{"lint":"eslint src/**/*.ts","test":"jest --verbose","build":"tsc","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","release-it":"^20.2.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.5_1782108299593_0.2220638693511756","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@amsyn/notion-parse","version":"1.0.6","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.0.6","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"b9cbb4f98dca10c6930804d1f467c51e8de28d9e","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.0.6.tgz","fileCount":6,"integrity":"sha512-LsFzyg6Ir2j8/vkoCalEFIeOLVvjM+YswYCp8xQ84Kbhid0QMIi2d6qdD03aUb2f01apmmL1qUBrG3vKiGcE3Q==","signatures":[{"sig":"MEUCIE8CRzZITya6rH2rry2em35uGd3YfYI45wwy5tvO0xBKAiEAwOFiUqZL8St3gE6Ff40U6EJuE5G6oRrj9UibCkQXNwc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18107},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"6bb62cf620e3cca37f9215868468abc5e0dd6cd0","scripts":{"lint":"eslint src/**/*.ts","test":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --verbose","build":"tsc","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","cross-env":"^10.1.0","release-it":"^20.2.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.0.6_1782109472748_0.27820516003732454","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@amsyn/notion-parse","version":"1.1.0","keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","_id":"@amsyn/notion-parse@1.1.0","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"dist":{"shasum":"17144eebd1c92350b15a45c2b73a3850787dce44","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.1.0.tgz","fileCount":18,"integrity":"sha512-1bwtaNnVnotF47KKWGJOx4hK3qRQTXj4gWtW2aXFLwG3073Zza8Iw3Fjrc1fwMKwH1/qsvZTRPU5JVKfr+Wq7A==","signatures":[{"sig":"MEUCIHykM0RdY10VMx2FS/zjIN1nX2hjXDRMi2dPWLP7TWKpAiEAxOhL7eC8K0SVoh2vD+dPr8bXgGsrhwS0thdR9JsaKLY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31497},"main":"lib/index.js","type":"module","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"ad57b60aab5869c2c53b41c2baed21a95e123ee8","scripts":{"lint":"eslint src/**/*.ts","test":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --verbose","build":"tsc -p tsconfig.build.json","format":"prettier --write src/**/*.ts","release":"release-it","lint:fix":"eslint src/**/*.ts --fix","test:watch":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch"},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"_npmVersion":"11.17.0","description":"Convert Notion pages to Markdown with frontmatter","directories":{},"_nodeVersion":"22.18.0","dependencies":{"jimp":"^0.22.10","yaml":"^2.3.4","slugify":"^1.6.6","notion-to-md":"^3.1.1","@notionhq/client":"^2.2.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^30.4.2","dotenv":"^17.4.2","eslint":"^10.5.0","ts-jest":"^29.4.11","prettier":"^3.8.4","cross-env":"^10.1.0","release-it":"^20.2.0","typescript":"^5.9.3","@types/jest":"^30.0.0","@types/node":"^26.0.0","@jest/globals":"^30.4.1","typescript-eslint":"^8.61.1","eslint-config-prettier":"^10.1.8","@typescript-eslint/parser":"^8.61.1","@typescript-eslint/eslint-plugin":"^8.61.1","@release-it/conventional-changelog":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/notion-parse_1.1.0_1784173712423_0.352443191758506","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@amsyn/notion-parse","version":"1.1.1","type":"module","description":"Convert Notion pages to Markdown with frontmatter","main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"import":"./lib/index.js","types":"./lib/index.d.ts"}},"scripts":{"build":"tsc -p tsconfig.build.json","test":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --verbose","test:watch":"cross-env NODE_OPTIONS=--experimental-vm-modules jest --watch","lint":"eslint src/**/*.ts","lint:fix":"eslint src/**/*.ts --fix","format":"prettier --write src/**/*.ts","release":"release-it"},"keywords":["markdown","notion","frontmatter"],"author":{"name":"Andy Yeung"},"license":"MIT","devDependencies":{"@jest/globals":"^30.4.1","@release-it/conventional-changelog":"^11.0.1","@types/jest":"^30.0.0","@types/node":"^26.0.0","@typescript-eslint/eslint-plugin":"^8.61.1","@typescript-eslint/parser":"^8.61.1","cross-env":"^10.1.0","dotenv":"^17.4.2","eslint":"^10.5.0","eslint-config-prettier":"^10.1.8","jest":"^30.4.2","prettier":"^3.8.4","release-it":"^20.2.0","ts-jest":"^29.4.11","typescript":"^5.9.3","typescript-eslint":"^8.61.1"},"dependencies":{"@notionhq/client":"^2.2.13","jimp":"^0.22.10","notion-to-md":"^3.1.1","transliteration":"^2.6.1","yaml":"^2.3.4"},"publishConfig":{"access":"public"},"gitHead":"7367be0a52cc61bf0318a952c943d0a4541b246e","_id":"@amsyn/notion-parse@1.1.1","_nodeVersion":"22.18.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-y6Kio7gj8NW98QZVGIMEstfSF6hqlbWgCuNAy69mn6ksfL1k2tMeg63wqVx9FHGw8Zfem/xa2SyxtR9XTT+pag==","shasum":"4fe5a3d8efb9ec939624ed65139d8a3b5434e402","tarball":"https://registry.npmjs.org/@amsyn/notion-parse/-/notion-parse-1.1.1.tgz","fileCount":18,"unpackedSize":31444,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE84X+7Djl1U0zn/bFhtVyauqkM2whqA6pFXCc3NYNSlAiEAzXo4ylsStQWVV9z1A21QkAiBQNSu8WbQFWlWMbrEluM="}]},"_npmUser":{"name":"amsyn","email":"yeung.ming.sang@gmail.com"},"directories":{},"maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/notion-parse_1.1.1_1784631390791_0.3480648309013441"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-19T12:34:02.602Z","modified":"2026-07-21T10:56:31.062Z","1.0.1":"2026-06-19T12:34:02.914Z","1.0.2":"2026-06-21T18:49:49.345Z","1.0.3":"2026-06-22T02:30:02.539Z","1.0.4":"2026-06-22T05:24:28.380Z","1.0.5":"2026-06-22T06:04:59.742Z","1.0.6":"2026-06-22T06:24:32.876Z","1.1.0":"2026-07-16T03:48:32.561Z","1.1.1":"2026-07-21T10:56:30.920Z"},"author":{"name":"Andy Yeung"},"license":"MIT","keywords":["markdown","notion","frontmatter"],"description":"Convert Notion pages to Markdown with frontmatter","maintainers":[{"name":"amsyn","email":"yeung.ming.sang@gmail.com"}],"readme":"# Notion Parse\r\n\r\nAn NPM module for downloading Notion content and saving it as Markdown with FrontMatter. This module takes data from Notion database pages and converts them into structured Markdown or MDX files.\r\n\r\n## Installation\r\n\r\n```bash\r\n# Using npm\r\nnpm install @amsyn/notion-parse\r\n\r\n# Using pnpm\r\npnpm add @amsyn/notion-parse\r\n\r\n# Using yarn\r\nyarn add @amsyn/notion-parse\r\n```\r\n\r\n## Standard Markdown Mode (.md)\r\n\r\nGenerates traditional .md files with clean YAML Frontmatter. Images are downloaded to your public directory and referenced via relative paths.\r\n\r\n```javascript\r\nimport { parseNotion } from '@amsyn/notion-parse';\r\nimport dotenv from 'dotenv';\r\ndotenv.config();\r\n\r\nconst databaseConfigs = [\r\n  {\r\n    databaseId: process.env.NOTION_DATABASE_ID,\r\n    contentType: \"blogs\", // Files will be generated under [outputDir]/blogs/\r\n    languageField: \"lang\", // Optional: for multi-language support (e.g. \"en\", \"zh\")\r\n  },\r\n];\r\n\r\nasync function sync() {\r\n  const { NOTION_SECRET } = process.env;\r\n  if (!NOTION_SECRET) throw new Error(\"Missing NOTION_SECRET\");\r\n\r\n  // Sync to './content' directory\r\n  await parseNotion(NOTION_SECRET, './src/app/content', databaseConfigs); \r\n  console.log(\"Sync completed!\");\r\n}\r\n\r\nsync().catch(console.error);\r\n```\r\n\r\n## Next.js MDX Folder Mode (.mdx)\r\n\r\nDesigned for Next.js App Router (e.g., ./src/app/content/[slug]/page.mdx).\r\n\r\nWhen useNextMdxFolderMode: true is enabled, the parser isolates each article into its own folder containing a page.mdx and its local images. Images are automatically imported as ESM modules and rendered using custom React components.\r\n\r\n```javascript\r\n// everything unchanged\r\nconst databaseConfigs = [\r\n  {\r\n    databaseId: process.env.NOTION_DATABASE_ID,\r\n    contentType: \"blogs\",\r\n    useNextMdxFolderMode: true, // 💡 Enables experimental MDX isolation mode\r\n  },\r\n];\r\n```\r\n\r\n## Generated page.mdx Preview\r\n```tsx\r\nimport { ArticleLayout } from '@/components/ArticleLayout'\r\nimport img0 from './cover.png'\r\n\r\nexport const article = {\r\n  \"notionId\": \"1a2b3c4d-...\",\r\n  \"type\": \"blogs\",\r\n  \"title\": \"My Awesome Notion Blog\",\r\n  \"slug\": \"my-awesome-notion-blog\",\r\n  \"comments\": []\r\n};\r\n\r\nexport const metadata = {\r\n  title: article.title,\r\n  description: article.description\r\n}\r\n\r\nexport default (props) => <ArticleLayout article=\"{article}\" {...props}/>\r\n\r\n# Hello World\r\n\r\n<Image alt=\"My Cover Image\" src=\"{img0}\"/>\r\n```\r\n\r\n## Configuration API (DocumentType)\r\n\r\nThe databaseConfigs array accepts objects with the following properties:\r\n\r\n| Option | Type | Required | Description |\r\n| --- | --- | --- | --- |\r\n| `database` | `string` | **Yes** | The Notion Database ID. |\r\n| `contentType` | `string` | **Yes** | Content type name (used as folder directory). |\r\n| `languageField` | `string` | **No** | Property name in Notion for language code (e.g., \"en\"). |\r\n| `filterFields` | `string[]` | **No** | Array of Notion properties to exclude from Frontmatter. |\r\n| `useNextMdxFolderMode` | `boolean` | **No** | If true, outputs .mdx with ESM imports. Default false. |\r\n\r\n\r\n## Environment Variables\r\n\r\nCreate a .env file in the root of your project:\r\n\r\n```env\r\nNOTION_SECRET=ntn_xxxxxxxxxxxxxxxxxxxxxxxxxx\r\nNOTION_DATABASE_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\r\n```\r\n\r\n> **Where is my Database ID?**\r\n> \r\n> Copy the link of your Notion database page. The ID is the 32-character string in the URL.\r\n\r\n## Features\r\n\r\n- Double-Track Generation: Choose between traditional .md or Next.js App Router compatible .mdx.\r\n- Smart Asset Pipeline: Automatically downloads and maps remote Notion images to local storage.\r\n- Auto Comments Sync: Automatically fetches and nests database page comments into frontmatter.\r\n- Contentlayer 2 Friendly: Easily integrated into modern SSG pipelines.\r\n\r\n## Requirements\r\n\r\n- Node.js: `20.x` or higher\r\n- Notion: An integration token with \"Read\" access.\r\n\r\n## License\r\n\r\nMIT","readmeFilename":"README.md"}