Skip to content
This repository was archived by the owner on Nov 14, 2021. It is now read-only.

Commit 46bfce7

Browse files
committed
feat: Add python entry point for narkdown
1 parent 764d0fb commit 46bfce7

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

main.py

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import os
2+
import sys
3+
import json
4+
import argparse
5+
from narkdown.exporter import NotionExporter
6+
7+
def str2bool(v):
8+
if isinstance(v, bool):
9+
return v
10+
if v.lower() in ('yes', 'true', 't', 'y', '1'):
11+
return True
12+
elif v.lower() in ('no', 'false', 'f', 'n', '0'):
13+
return False
14+
else:
15+
raise argparse.ArgumentTypeError('Boolean value expected.')
16+
17+
def str2dict(s):
18+
return json.loads(s.replace("'", "\""))
19+
20+
def parse_args():
21+
parser = argparse.ArgumentParser(description="Export markdown docs from notion database.")
22+
parser.add_argument('database_url')
23+
parser.add_argument('--docs-directory', default="./docs")
24+
parser.add_argument('--recursive-export', type=str2bool, default=True)
25+
parser.add_argument('--create-page-directory', type=str2bool, default=True)
26+
parser.add_argument('--add-metadata', type=str2bool, default=False)
27+
parser.add_argument('--lower-pathname', type=str2bool, default=False)
28+
parser.add_argument('--lower-filename', type=str2bool, default=False)
29+
parser.add_argument('--line-break', type=str2bool, default=False)
30+
parser.add_argument('--category-column-name', default="")
31+
parser.add_argument('--tags-column-name', default="")
32+
parser.add_argument('--created-time-column-name', default="")
33+
parser.add_argument('--status-column-name', default="")
34+
parser.add_argument('--current-status', default="")
35+
parser.add_argument('--next-status', default="")
36+
parser.add_argument('--filters', default="{}")
37+
38+
return parser.parse_args()
39+
40+
if __name__ == "__main__":
41+
args = parse_args()
42+
43+
token = os.environ.get("NOTION_TOKEN")
44+
args.filters = str2dict(args.filters)
45+
46+
NotionExporter(
47+
token,
48+
docs_directory=args.docs_directory,
49+
recursive_export=args.recursive_export,
50+
create_page_directory=args.create_page_directory,
51+
add_metadata=args.add_metadata,
52+
lower_pathname=args.lower_pathname,
53+
lower_filename=args.lower_filename,
54+
line_break=args.line_break
55+
).get_notion_pages_from_database(
56+
database_url=args.database_url,
57+
category_column_name=args.category_column_name,
58+
tags_column_name=args.tags_column_name,
59+
created_time_column_name=args.created_time_column_name,
60+
status_column_name=args.status_column_name,
61+
current_status=args.current_status,
62+
next_status=args.next_status,
63+
filters=args.filters
64+
)
65+

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
narkdown==1.1.9

0 commit comments

Comments
 (0)