def get_markdown_ast(markdown_file): try: f = open(markdown_file, 'r') return CommonMark.DocParser().parse(f.read()) except: log.error( "Error: Can't open {0} for reading".format(markdown_file)) sys.exit(1) finally: f.close()
def main(argv): rss_file_name = argv[0] release_notes_file_name = argv[1] if 'bin' not in os.getcwd(): os.chdir('./source/bin/build_scripts') output_path = '../../../deployment/regional-s3-assets/' make_dir(output_path) print('Loading CHANGELOG.md into memory...') with open('../../../deployment/CHANGELOG.md', 'r', encoding="utf-8") as content_file: changelog = content_file.read() print('Parsing CHANGELOG.md...') ast = CommonMark.DocParser().parse(changelog) ast_dict = CMarkASTNester().nest(ast) print('Converting CHANGELOG.md into JSON...') # JSON representation of the CHANGELOG.md _json = Renderer().stringify_dict(ast_dict) print('Saving CHANGELOG.md JSON into file...') file = open('CHANGELOG.json', 'w', encoding="utf-8") file.write(json.dumps(_json)) file.close() # Python dictionary representation of the CHANGELOG.md print('Converting CHANGELOG JSON into Python dict...') changelog = next(iter(_json.values())) j2loader = jinja2.FileSystemLoader('./') j2env = jinja2.Environment(loader=j2loader) print('Processing RSS xml Jinja template...') process_j2_template(j2env, changelog, rss_file_name + ".j2", output_path + rss_file_name) print('Processing Release notes html Jinja template...') process_j2_template(j2env, changelog, release_notes_file_name + ".j2", output_path + release_notes_file_name)
def get_markdown_ast(markdown_file): f = open(markdown_file, 'r') return CommonMark.DocParser().parse(f.read())
def list_nested(list_md): ast = CommonMark.DocParser().parse(list_md) return CMarkASTNester().nest(ast)
def extract_json(fileName): ast = CommonMark.DocParser().parse(fileName.read()) nestedAst = CMarkASTNester().nest(ast) orderdDict = Renderer().stringify_dict(nestedAst) return json.loads(json.dumps(orderdDict, indent=4))
def list_nested(list_md): try: ast = CommonMark.DocParser().parse(list_md) return CMarkASTNester().nest(ast) except: logging.error("markdown file must has H1 title!")