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
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
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)
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)