Ejemplo n.º 1
0
    def __export_helper(files, export_dir):
        result = ''
        for f in files:
            # Проверяем, есть ли такая директория
            if not os.path.exists(export_dir):
                os.mkdir(export_dir)

            # Если это внезапно папка - то рекурсивно пробегаемся по ней
            if f.isdir:
                result += __export_helper(f.files,
                                          os.path.join(export_dir, f.name))
                continue

            ctx = {}
            # extends
            if FIXTURE in ENABLE_EXTINSIONS:
                fixture = load_fixture(path=f.path)
                ctx.update(fixture)
            if TEMPLATE_LIST in ENABLE_EXTINSIONS:
                node = Node(True, TEMPLATE_DIR, '/',
                            __get_files(os.path.join(PATH, TEMPLATE_DIR)))
                ctx['templates'] = render_template('__files_list.html',
                                                   node=node,
                                                   is_export=True)
            export_template = render_template('%s.html' % f.path, **ctx)

            # Пытаемся экспортировать
            try:
                export_template_link = open(os.path.join(export_dir, f.name),
                                            mode='wb')

                # Делаем относительный путь, чтобы не от корня считался, а от файлика
                relative_path = os.path.relpath(
                                    os.path.join(PATH, STATIC_DIR),
                                    os.path.join(PATH, export_dir) )\
                                    .replace('\\', '/')

                # Нагло реплейсим пути к статике прямо внутри шаблона
                # export_template = export_template.replace('/%s' % STATIC_DIR, relative_path)

                export_template_link.write(export_template.encode('utf-8'))
                export_template_link.close()

                # Пишем в лог, что все ок.
                result += 'export templates %s\n<br>' % f.path
            except IOError:
                # Если нет прав на запись или не можем найти папочку — эксептим
                result += '[!] export templates error: %s\n<br>' % f.path

        return result
Ejemplo n.º 2
0
    def __export_helper(files, export_dir):
        result = ''
        for f in files:
            # Проверяем, есть ли такая директория
            if not os.path.exists( export_dir ):
                os.mkdir( export_dir )

            # Если это внезапно папка - то рекурсивно пробегаемся по ней
            if f.isdir:
                result += __export_helper(f.files, os.path.join(export_dir, f.name))
                continue

            ctx = {}
            # extends
            if FIXTURE in ENABLE_EXTINSIONS:
                fixture = load_fixture(path=f.path)
                ctx.update(fixture)
            if TEMPLATE_LIST in ENABLE_EXTINSIONS:
                node = Node(True, TEMPLATE_DIR, '/',
                        __get_files( os.path.join(PATH, TEMPLATE_DIR)))
                ctx['templates'] = render_template('__files_list.html', node=node, is_export=True)
            export_template = render_template('%s.html' % f.path, **ctx)

            # Пытаемся экспортировать
            try:
                export_template_link = open(
                    os.path.join(export_dir, f.name), mode='wb')

                # Делаем относительный путь, чтобы не от корня считался, а от файлика
                relative_path = os.path.relpath(
                                    os.path.join(PATH, STATIC_DIR),
                                    os.path.join(PATH, export_dir) )\
                                    .replace('\\', '/')

                # Нагло реплейсим пути к статике прямо внутри шаблона
                # export_template = export_template.replace('/%s' % STATIC_DIR, relative_path)

                export_template_link.write( export_template.encode('utf-8') )
                export_template_link.close()

                # Пишем в лог, что все ок.
                result += 'export templates %s\n<br>' % f.path
            except IOError:
                # Если нет прав на запись или не можем найти папочку — эксептим
                result += '[!] export templates error: %s\n<br>' % f.path

        return result
Ejemplo n.º 3
0
def any_page(directory='/', page='/'):
    """
    Собственно, роут для шаблонов. Открывает наши файлики
    """
    node = Node(True, TEMPLATE_DIR, '/',
                __get_files( os.path.join(PATH, TEMPLATE_DIR)))

    ctx = {}
    # extends
    if FIXTURE in ENABLE_EXTINSIONS:
        fixture = load_fixture(directory=directory, page=page)
        ctx.update(fixture)

    if page == '/':
        return render_template('__list.html',
            node=node, **ctx)
    try:
        template_name = os.path.join(directory, page + '.html').replace('\\', '/')
        # templates list
        if TEMPLATE_LIST in ENABLE_EXTINSIONS:
            ctx['templates'] = render_template('__files_list.html', node=node)
        return render_template(template_name, **ctx)
    except TemplateNotFound:
        return render_template('__404.html', **ctx)
Ejemplo n.º 4
0
def any_page(directory='/', page='/'):
    """
    Собственно, роут для шаблонов. Открывает наши файлики
    """
    node = Node(True, TEMPLATE_DIR, '/',
                __get_files(os.path.join(PATH, TEMPLATE_DIR)))

    ctx = {}
    # extends
    if FIXTURE in ENABLE_EXTINSIONS:
        fixture = load_fixture(directory=directory, page=page)
        ctx.update(fixture)

    if page == '/':
        return render_template('__list.html', node=node, **ctx)
    try:
        template_name = os.path.join(directory,
                                     page + '.html').replace('\\', '/')
        # templates list
        if TEMPLATE_LIST in ENABLE_EXTINSIONS:
            ctx['templates'] = render_template('__files_list.html', node=node)
        return render_template(template_name, **ctx)
    except TemplateNotFound:
        return render_template('__404.html', **ctx)