Пример #1
0
 def jsonify_markdown(markdown_file):
     nester = CMarkASTNester()
     renderer = Renderer()
     ast = get_markdown_ast(markdown_file)
     nested = nester.nest(ast)
     rendered = renderer.stringify_dict(nested)
     return rendered
Пример #2
0
def jsonify_markdown(markdown_file, outfile, indent):
    nester = CMarkASTNester()
    renderer = Renderer()
    with writable_io_or_stdout(outfile) as f:
        ast = get_markdown_ast(markdown_file)
        nested = nester.nest(ast)
        rendered = renderer.stringify_dict(nested)
        json.dump(rendered, f, indent=indent)
        f.write("\n")
    return 0
Пример #3
0
def jsonify_markdown(markdown_file, outfile, indent):
    nester = CMarkASTNester()
    renderer = Renderer()
    with writable_io_or_stdout(outfile) as f:
        ast = get_markdown_ast(markdown_file)
        nested = nester.nest(ast)
        rendered = renderer.stringify_dict(nested)
        json.dump(rendered, f, indent=indent)
        f.write("\n")
    return 0
Пример #4
0
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)
Пример #5
0
                "Reading the .xyz file failed in line {0}. Please check the format."
                .format(lines_read + 2))

    f.close()
    atoms = np.array(atoms)
    V = np.array(V)
    return atoms, V


def get_markdown_ast(markdown_file):
    f = open(markdown_file, 'r')
    return CommonMark.DocParser().parse(f.read())


nester = CMarkASTNester()
renderer = Renderer()


def md2json():
    ast = get_markdown_ast(filename)
    nested = nester.nest(ast)
    rendered = renderer.stringify_dict(nested)
    return json


def get_charge(filename):

    if not os.path.isfile(filename):
        filename = filename.replace("README", "readme")

    cmd = 'grep "Total charge on system is" ' + filename
Пример #6
0
def test_nester_lists_correctly(list_nested):
    stringified = Renderer().stringify_dict(list_nested)
    l = stringified['Heading']
    assert l == ['a', 'b', ['b.a', 'b.b'], 'c']
Пример #7
0
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))
Пример #8
0
    def query(self, query):

        if not query:
            return [{
                'Title': 'cmd blog',
                'SubTitle':
                'cb for cmb blog on github. author: [email protected](点击打开github项目)',
                'IcoPath': 'icon.png',
                "JsonRPCAction": {
                    "method": "openUrl",
                    "parameters": [DIR_BASE_URL]
                },
            }]
        logging.info(str(query))

        if query == 'update':  # 强制刷新
            rst = Main.update_github()
            if rst == True:
                return [{
                    'Title': 'update success',
                    'SubTitle': 'clone/pull github success!',
                    'IcoPath': 'icon.png'
                }]
            else:
                return [{
                    'Title': 'update failed',
                    'SubTitle': rst,
                    'IcoPath': 'icon.png'
                }]

        dt = DirTree().buildRecursive2(cmdblog_path,
                                       ignoreDirs=[".idea", ".git"])
        # print(dt)
        results = []
        query_list = query.split(' ')[0:2]  # 最多取前两个参数
        if len(query_list) == 1:
            q1 = query_list[0]
            for k in dt:
                if k.find(q1) != -1:
                    res = {
                        "Title": k,
                        "SubTitle": k + "(回车自动补全)",
                        "IcoPath": "icon.png",
                        # 打开所在的文件夹路径
                        "JsonRPCAction": {
                            # "method": "openUrl", "parameters": [DIR_BASE_URL + str(k)]},
                            "method": "change_query",
                            "parameters": ['cb ' + k + ' '],
                            "dontHideAfterAction": True,  # True: 执行操作后不隐藏wox
                        }
                    }
                    results.append(res)
            return results
        else:
            # 当有两个参数的时候,第一个参数q1必须完全匹配, q2支持k的模糊搜索,凡是匹配的readme都打开
            q1, q2 = query_list
            if q1 not in dt:
                return []

            # 查找思路:直接构造readme文件的路径,查找是否存在该文件
            for k in dt[q1]:
                if k.find(q2) != -1:
                    for _ in dt[q1][k]:
                        readme_path = os.path.join(cmdblog_path, q1, k,
                                                   READ_ME)
                        if os.path.isfile(readme_path):
                            with open(readme_path, 'r', encoding='UTF-8') as f:
                                j1 = list_nested(f.read())
                                j2 = Renderer().stringify_dict(j1)
                                for x, y in j2['Summary'].items(
                                ) if 'Summary' in j2 else {}:
                                    p = pertty(y)
                                    if p[0:4].lower() == "http":
                                        res = {
                                            "Title": k + ": " + x,
                                            "SubTitle": p + "(回车可打开url)",
                                            "IcoPath": "icon.png",
                                            "JsonRPCAction": {  # 打开所在的文件夹路径
                                                "method": "openUrl",
                                                "parameters": [p],  # 将命令拷贝到剪贴板
                                            }
                                        }
                                    else:
                                        res = {
                                            "Title": k + ": " + x,
                                            "SubTitle": p + "(回车可复制命令行)",
                                            "IcoPath": "icon.png",
                                            "JsonRPCAction": {  # 打开所在的文件夹路径
                                                "method": "copy_to_clip",
                                                "parameters": [p],  # 将命令拷贝到剪贴板
                                            }
                                        }
                                    results.append(res)
            return results