notionのDBにmarkdownファイルを変換するツールです。フォルダ構造もタグとして表現されます。
notionのtokenの発行方法やDBとの紐付けかたはこちらを参照してください。
English👉README.md
npm install markdown2notion
yarn add markdown2notion
javascriptと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);
}
}
ページのURLはmarkdownToNotion()を使うたびに変更されるため、URLを使って何かしたい場合は、この関数でページのURLを取得してください。
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)
}
}
├── docs
│ ├── sample1
│ │ ├── sample1_1
│ │ │ ├── sampleContent1_1.md
│ │ ├── sampleContent1.md
│ ├── sample2
│ │ ├── sampleContent2.md
├── src
│ ├── index.ts
├── .env
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()
NOTION_TOKEN=secret_xxxxxxxxxxxxxx
NOTION_DATABASE_ID=xxxxxxxxxxxxxxx
タグでフィルタリングすることで、見たいファイルをすぐに探すことができます。
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()
{
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: {}
}
MIT