Exemplo n.º 1
0
def dispose_serial_file(png, wroot, mslug, lslug, jinja2_file, left_nav, mname, nav=None):
    '''
    处理满足条件的序列数据
    '''

    rrxlsx_file = os.path.join(wroot, png)

    data_apth, h_place, q_place = parse_serial_filename(rrxlsx_file)
    sig_q = data_apth[:q_place]
    sig_h = data_apth[h_place + 1:]

    for wwfile in os.listdir(wroot):
        if wwfile.startswith(sig_q) and wwfile.endswith(sig_h):
            the_sig = wwfile[q_place: h_place - 1]

            npng = png.replace('[sig]', the_sig)
            print(npng)
            file_slug = '{}'.format(lslug.replace('[sig]', the_sig))
            file_name = file_slug + '.html'
            out_html_file = os.path.join(dst_ws, file_name)
            helper.render_html(
                jinja2_file,
                out_html_file,
                nav=nav,
                left_nav=left_nav,
                title=mslug + the_sig,
                mname=mname,
                lyr_name=file_slug,
                IP=TILE_SVR
            )
Exemplo n.º 2
0
def gen_html_index():
    '''
    生成首页 index.html
    '''
    list_main = fetch_structure()
    nav_formated = format_nav(list_main)
    left_nav = format_leftnav(list_main, '')
    index_in = 'index.jinja2'
    index_out = os.path.join(dst_ws, 'index.html')

    helper.render_html(index_in, index_out, nav=nav_formated, left_nav=left_nav)
Exemplo n.º 3
0
def gen_html_pages2(wroot):
    # 处理 HTML 文件
    _, the_dir = os.path.split(wroot)
    list_main = fetch_structure()
    nav_formated = format_nav(list_main)
    md_files = [x for x in os.listdir(wroot) if x.endswith('.xlsx') and x.startswith('meta_')]
    for idx_file, md_file in enumerate(md_files):
        name_before, name_after = os.path.split(the_dir)
        midx, mname, mslug = name_after.split('_')
        lqian, lhou = os.path.splitext(md_file)
        left_nav = format_leftnav(list_main, mname)
        file_dirs = lqian.split('_')
        if len(file_dirs) > 2:
            lidx, lname, lslug = file_dirs
        else:
            lidx, lslug = file_dirs
            lname = file_dirs[-1]

        #  对分组(grp)的XLSX进行处理。
        # dir_idx, dir_slug, dir_title = the_dir.split('_')
        # 使用分类 slug
        # file_slug = '{}_{}'.format(mslug, lslug)
        #  使用唯一ID
        file_slug = '{}'.format(lslug)
        out_html_file = os.path.join(dst_ws, file_slug + '.html')
        jinja2_file = 'templates/lyr.jinja2'
        jinja2_file = '/'.join(jinja2_file.split('/')[1:])

        if '_grp' in md_file:
            #  处理。
            helper.render_html(
                'lyrgrp.jinja2',
                out_html_file,
                nav=nav_formated,
                layers=helper.lyr_list(os.path.join(wroot, md_file)),
                IP=TILE_SVR,
                left_nav=left_nav,
                title=lname,
                mname=mname
            )
        elif '[' in md_file:
            dispose_serial_file(md_file, wroot, mslug, lslug, jinja2_file, left_nav, mname,
                                nav=nav_formated)
        else:
            helper.render_html(
                jinja2_file,
                out_html_file,
                nav=nav_formated,
                lyr_name=file_slug,
                IP=TILE_SVR,
                left_nav=left_nav,
                title=lname,
                mname=mname
            )
Exemplo n.º 4
0
def gen_html_pages():
    '''
    根据输入的 MarkDown 文件,生成 HTML 结果。
    '''
    list_main = fetch_structure()  # print('5' * 40)
    # pprint(list_main)
    nav_formated = format_nav(list_main)

    the_dirs = os.listdir(src_ws)
    the_dirs.sort()
    for idx_dir, the_dir in enumerate(the_dirs):
        wroot = os.path.join(src_ws, the_dir)

        if os.path.isdir(wroot):
            pass
        else:
            continue

        ################
        # 处理 HTML 文件
        md_files = [
            x for x in os.listdir(wroot)
            if x.endswith('.xlsx') and x.startswith('meta_')
        ]
        for idx_file, md_file in enumerate(md_files):

            mqian, mhou = os.path.split(the_dir)
            midx, mslug, mname = mhou.split('_')
            lqian, lhou = os.path.splitext(md_file)
            xxuu = lqian.split('_')

            left_nav = format_leftnav(list_main, mname)

            if len(xxuu) > 2:
                lidx, lslug, lname = xxuu
            else:
                lidx, lslug = xxuu
                lname = xxuu[-1]

            # ToDo: 对分组(grp)的XLSX进行处理。
            dir_idx, dir_slug, dir_title = the_dir.split('_')

            file_slug = '{}_{}'.format(mslug, lslug)
            # file_title = md_dic['title']
            file_name = file_slug + '.html'

            out_html_file = os.path.join(dst_ws, file_name)

            jinja2_file = 'templates/lyr.jinja2'
            jinja2_file = '/'.join(jinja2_file.split('/')[1:])

            if '_grp' in md_file:
                # ToDo: 处理。
                helper.render_html('lyrgrp.jinja2',
                                   out_html_file,
                                   nav=nav_formated,
                                   layers=helper.lyr_list(
                                       mslug, os.path.join(wroot, md_file)),
                                   IP=TILE_SVR,
                                   left_nav=left_nav,
                                   title=lname,
                                   mname=mname)
            elif '[' in md_file:
                chuli_serial_file(md_file,
                                  wroot,
                                  mslug,
                                  lslug,
                                  jinja2_file,
                                  left_nav,
                                  mname,
                                  nav=nav_formated)
            else:
                helper.render_html(jinja2_file,
                                   out_html_file,
                                   nav=nav_formated,
                                   lyr_name=file_slug,
                                   IP=TILE_SVR,
                                   left_nav=left_nav,
                                   title=lname,
                                   mname=mname)