|
1 | | -import os |
2 | | -import json |
3 | | -import argparse |
4 | | -from narkdown.exporter import NotionExporter |
5 | | - |
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 | | - |
18 | | -def str2dict(s): |
19 | | - return json.loads(s.replace("'", '"')) |
20 | | - |
21 | | - |
22 | | -def parse_args(): |
23 | | - parser = argparse.ArgumentParser( |
24 | | - description="Export markdown docs from notion database." |
25 | | - ) |
26 | | - parser.add_argument("database_url") |
27 | | - parser.add_argument("--docs-directory", default="./docs") |
28 | | - parser.add_argument("--recursive-export", type=str2bool, default=True) |
29 | | - parser.add_argument("--create-page-directory", type=str2bool, default=True) |
30 | | - parser.add_argument("--add-metadata", type=str2bool, default=False) |
31 | | - parser.add_argument("--lower-pathname", type=str2bool, default=False) |
32 | | - parser.add_argument("--lower-filename", type=str2bool, default=False) |
33 | | - parser.add_argument("--line-break", type=str2bool, default=False) |
34 | | - parser.add_argument("--category-column-name", default="") |
35 | | - parser.add_argument("--tags-column-name", default="") |
36 | | - parser.add_argument("--created-time-column-name", default="") |
37 | | - parser.add_argument("--status-column-name", default="") |
38 | | - parser.add_argument("--current-status", default="") |
39 | | - parser.add_argument("--next-status", default="") |
40 | | - parser.add_argument("--filters", default="{}") |
41 | | - |
42 | | - return parser.parse_args() |
43 | | - |
| 1 | +from narkdown.cli import main |
44 | 2 |
|
45 | 3 | if __name__ == "__main__": |
46 | | - args = parse_args() |
47 | | - |
48 | | - token = os.environ.get("NOTION_TOKEN") |
49 | | - args.filters = str2dict(args.filters) |
50 | | - |
51 | | - NotionExporter( |
52 | | - token, |
53 | | - docs_directory=args.docs_directory, |
54 | | - recursive_export=args.recursive_export, |
55 | | - create_page_directory=args.create_page_directory, |
56 | | - add_metadata=args.add_metadata, |
57 | | - lower_pathname=args.lower_pathname, |
58 | | - lower_filename=args.lower_filename, |
59 | | - line_break=args.line_break, |
60 | | - ).get_notion_pages_from_database( |
61 | | - database_url=args.database_url, |
62 | | - category_column_name=args.category_column_name, |
63 | | - tags_column_name=args.tags_column_name, |
64 | | - created_time_column_name=args.created_time_column_name, |
65 | | - status_column_name=args.status_column_name, |
66 | | - current_status=args.current_status, |
67 | | - next_status=args.next_status, |
68 | | - filters=args.filters, |
69 | | - ) |
| 4 | + main() |
0 commit comments