Example #1
0
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))
Example #2
0
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()
Example #3
0
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)