Conditions | 6 |
Total Lines | 42 |
Lines | 0 |
Ratio | 0 % |
Changes | 3 | ||
Bugs | 0 | Features | 0 |
1 | #!/usr/bin/env python |
||
8 | def main(): |
||
9 | parser = argparse.ArgumentParser( |
||
10 | description="Process Markdown according to " |
||
11 | "the CommonMark specification.") |
||
12 | if sys.version_info < (3, 0): |
||
13 | reload(sys) # noqa |
||
14 | sys.setdefaultencoding('utf-8') |
||
15 | parser.add_argument( |
||
16 | 'infile', |
||
17 | nargs="?", |
||
18 | type=argparse.FileType('r'), |
||
19 | default=sys.stdin, |
||
20 | help="Input Markdown file to parse, defaults to STDIN") |
||
21 | parser.add_argument( |
||
22 | '-o', |
||
23 | nargs="?", |
||
24 | type=argparse.FileType('w'), |
||
25 | default=sys.stdout, |
||
26 | help="Output HTML/JSON file, defaults to STDOUT") |
||
27 | parser.add_argument('-a', action="store_true", help="Print formatted AST") |
||
28 | parser.add_argument('-aj', action="store_true", help="Output JSON AST") |
||
29 | args = parser.parse_args() |
||
30 | parser = CommonMark.Parser() |
||
31 | f = args.infile |
||
32 | o = args.o |
||
33 | lines = [] |
||
34 | for line in f: |
||
35 | lines.append(line) |
||
36 | data = "".join(lines) |
||
37 | ast = parser.parse(data) |
||
38 | if not args.a and not args.aj: |
||
39 | renderer = CommonMark.HtmlRenderer() |
||
40 | o.write(renderer.render(ast)) |
||
41 | exit() |
||
42 | if args.a: |
||
43 | # print ast |
||
44 | CommonMark.dumpAST(ast) |
||
45 | exit() |
||
46 | |||
47 | # o.write(ast.to_JSON()) |
||
48 | o.write(CommonMark.dumpJSON(ast)) |
||
49 | exit() |
||
50 | |||
54 |