def wp_edit(config_agent, tpl_render, req_path): view_settings = get_view_settings(config_agent) view_settings["auto_toc"] = False view_settings["highlight_code"] = False view_settings["reader_mode"] = False static_files = static_file.get_global_static_files(**view_settings) full_path = mdutils.req_path_to_local_full_path(req_path, folder_pages_full_path) if config_agent.config.get("frontend", "button_mode_path"): buf = mdutils.text_path_to_button_path("/%s" % req_path) title = mdutils.md2html(config_agent=config_agent, req_path=req_path, text=buf, **view_settings) else: title = req_path create_new = False if os.path.isfile(full_path): content = commons.shutils.cat(full_path) elif os.path.isdir(full_path): content = get_dot_idx_content_by_full_path(full_path) elif not os.path.exists(full_path): create_new = True content = "" else: raise Exception("invalid path '%s'" % req_path) return tpl_render.editor( config_agent=config_agent, static_files=static_files, req_path=req_path, create_new=create_new, title=title, content=content, **view_settings )
def wp_read(config_agent, tpl_render, req_path): view_settings = get_view_settings(config_agent) folder_pages_full_path = config_agent.get_full_path("paths", "pages_path") local_full_path = mdutils.req_path_to_local_full_path(req_path, folder_pages_full_path) static_file_prefix = static_file.get_static_file_prefix_by_local_full_path(config_agent = config_agent, local_full_path = local_full_path, req_path = req_path) path_info = web.ctx.environ["PATH_INFO"] HOME_PAGE = "" if req_path != HOME_PAGE and view_settings["button_mode_path"]: buf = mdutils.text_path_to_button_path("/%s" % req_path) button_path = mdutils.md2html(config_agent = config_agent, req_path = req_path, text = buf, static_file_prefix = static_file_prefix, **view_settings) else: button_path = None view_settings["show_quick_links"] = False if os.path.isfile(local_full_path): # os.path.exists(local_full_path) buf = commons.shutils.cat(local_full_path) buf = commons.strutils.strip_bom(buf) elif os.path.isdir(local_full_path): # os.path.exists(local_full_path) if req_path == HOME_PAGE: a = os.path.join(local_full_path, "index.md") b = os.path.join(local_full_path, "index.markdown") if os.path.exists(a) or os.path.exists(b): fixed_req_path = os.path.join(path_info, "index") return web.seeother(fixed_req_path) else: fixed_req_path = os.path.join(path_info, "~all") return web.seeother(fixed_req_path) else: # listdir /path/to/folder/* buf = shell.get_page_file_list_by_req_path(folder_pages_full_path = folder_pages_full_path, req_path = req_path) if buf: buf = mdutils.sequence_to_unorder_list(buf.split("\n"), **view_settings) else: buf = "folder `%s` exists, but there is no files" % path_info else: # not os.path.exists(local_full_path) if path_info.endswith("/"): fixed_req_path = path_info + "index?action=update" else: fixed_req_path = path_info + "?action=update" return web.seeother(fixed_req_path) title = mdutils.get_title_from_md(local_full_path = local_full_path) content = mdutils.md2html(config_agent = config_agent, req_path = req_path, text = buf, static_file_prefix = static_file_prefix, **view_settings) static_files = get_the_same_folders_cssjs_files(req_path = req_path, local_full_path = local_full_path, folder_pages_full_path = folder_pages_full_path) if not static_files: static_files = static_file.get_global_static_files(**view_settings) + "\n" buf = tpl_render.canvas(config = config_agent.config, static_files = static_files, button_path = button_path, req_path = req_path, title = title, content = content, **view_settings) return buf
def wp_read(config_agent, tpl_render, req_path): view_settings = get_view_settings(config_agent) folder_pages_full_path = config_agent.get_full_path("paths", "pages_path") local_full_path = mdutils.req_path_to_local_full_path(req_path, folder_pages_full_path) HOME_PAGE = "" if req_path != HOME_PAGE and view_settings["button_mode_path"]: buf = mdutils.text_path_to_button_path("/%s" % req_path) button_path = mdutils.md2html(config_agent=config_agent, req_path=req_path, text=buf) else: button_path = None view_settings["show_quick_links"] = False if os.path.isfile(local_full_path): content = commons.shutils.cat(local_full_path) content = commons.strutils.strip_bom(content) elif os.path.isdir(local_full_path): # try /path/to/folder/index content = get_dot_idx_content_by_full_path(local_full_path) or "" if not content: # try /path/to/folder/* content = get_page_file_list_by_req_path(folder_pages_full_path=folder_pages_full_path, req_path=req_path) if content: content = mdutils.sequence_to_unorder_list(content.split("\n"), **view_settings) else: # /index does not exists if req_path == HOME_PAGE: return web.seeother("~all") else: return web.seeother("/%s?action=edit" % req_path) title = mdutils.get_title_from_md(full_path=local_full_path) content = mdutils.md2html(config_agent=config_agent, req_path=req_path, text=content) static_files = get_the_same_folders_cssjs_files( req_path=req_path, local_full_path=local_full_path, folder_pages_full_path=folder_pages_full_path ) if not static_files: static_files = static_file.get_global_static_files(**view_settings) + "\n" buf = tpl_render.canvas( config=config_agent.config, static_files=static_files, button_path=button_path, req_path=req_path, title=title, content=content, **view_settings ) # try: # buf = tpl_render.canvas(config = config_agent.config, # static_files = static_files, button_path = button_path, content = content, # **view_settings) # except TypeError, ex: # logging.error(str(ex)) # buf = "Rendering template for '%s' failed. \n" % req_path +\ # "try following command override old templtes files and fix it: \n\n" +\ # " zwadmin.py upgrade <full path of instance>" + "\n" # logging.error(buf) return buf
def wp_read(config_agent, tpl_render, req_path): view_settings = get_view_settings(config_agent) folder_pages_full_path = config_agent.get_full_path("paths", "pages_path") local_full_path = mdutils.req_path_to_local_full_path( req_path, folder_pages_full_path) static_file_prefix = static_file.get_static_file_prefix_by_local_full_path( config_agent=config_agent, local_full_path=local_full_path, req_path=req_path) path_info = web.ctx.environ["PATH_INFO"] HOME_PAGE = "" if req_path != HOME_PAGE and view_settings["button_mode_path"]: buf = mdutils.text_path_to_button_path("/%s" % req_path) button_path = mdutils.md2html(config_agent=config_agent, req_path=req_path, text=buf, static_file_prefix=static_file_prefix, **view_settings) else: button_path = None view_settings["show_quick_links"] = False title = "" if os.path.isfile(local_full_path): # os.path.exists(local_full_path) buf = commons.shutils.cat(local_full_path) buf = commons.strutils.strip_bom(buf) title = mdutils.get_title_by_file_path_in_md( folder_pages_full_path=folder_pages_full_path, file_path_suffix=local_full_path) elif os.path.isdir(local_full_path): # os.path.exists(local_full_path) if req_path == HOME_PAGE: a = os.path.join(local_full_path, "index.md") b = os.path.join(local_full_path, "index.markdown") if os.path.exists(a) or os.path.exists(b): fixed_req_path = os.path.join(path_info, "index") return web.seeother(fixed_req_path) else: fixed_req_path = os.path.join(path_info, "~all") return web.seeother(fixed_req_path) else: # listdir /path/to/folder/* buf = shell.get_page_file_list_by_req_path( folder_pages_full_path=folder_pages_full_path, req_path=req_path) if buf: buf = mdutils.sequence_to_unorder_list( folder_pages_full_path=folder_pages_full_path, seq=buf.split("\n"), **view_settings) title = req_path else: buf = "folder `%s` exists, but there is no files" % path_info else: # not os.path.exists(local_full_path) readonly = config_agent.config.get("main", "readonly") if readonly: raise web.Forbidden() else: if path_info.endswith("/"): fixed_req_path = path_info + "index?action=update" else: fixed_req_path = path_info + "?action=update" return web.seeother(fixed_req_path) content = mdutils.md2html(config_agent=config_agent, req_path=req_path, text=buf, static_file_prefix=static_file_prefix, **view_settings) static_files = get_the_same_folders_cssjs_files( req_path=req_path, local_full_path=local_full_path, folder_pages_full_path=folder_pages_full_path) if not static_files: static_files = static_file.get_global_static_files( **view_settings) + "\n" buf = tpl_render.canvas(config=config_agent.config, static_files=static_files, button_path=button_path, req_path=req_path, title=title, content=content, **view_settings) return buf