def item(id, item): repository = open_repository(id) pkg = Package(repository.root) item = pkg.item_by_id(item) if not item: abort(404) return redirect(url_for("view", id=id, relpath=item.relpath))
def view(id, relpath=None): repository = open_repository(id) pkg = Package(repository.root) if "cmd" in request.args: return repo(id, relpath or "/") if relpath is None: return redirect(url_for("view", id=id, relpath=pkg.spine[0].relpath)) doc = pkg.item_by_relpath(relpath) if not doc: abort(404) if doc.is_content: return render_page(id, pkg, doc) return doc.fh().read()
def repo(id, path="/"): repository = open_repository(id) request.environ["PATH_INFO"] = path base = url_for("repo", id=id) request.environ["SCRIPT_NAME"] = base return wsgi_handler(repository)