Beispiel #1
0
def show_dataobj(dataobj_id):
    dataobj = data.get_item(dataobj_id)

    if not dataobj:
        flash("Data could not be found!", "error")
        return redirect("/")

    if request.args.get("raw") == "1":
        return frontmatter.dumps(dataobj)

    backlinks = []
    if app.config["SEARCH_CONF"]["enabled"]:
        incoming_links = search(f"/{dataobj_id}\)]]")
        if incoming_links:
            for hit in incoming_links:
                if hit["id"] != dataobj_id:
                    backlinks.append({"title": hit["title"], "id": hit["id"]})

    return render_template(
        "dataobjs/show.html",
        title=dataobj["title"],
        dataobj=dataobj,
        backlinks=backlinks,
        current_path=dataobj["dir"],
        form=forms.DeleteDataForm(),
        view_only=0,
        search_enabled=app.config["SEARCH_CONF"]["enabled"],
    )
Beispiel #2
0
def get_dataobj(dataobj_id):
    dataobj = data.get_item(dataobj_id)

    return jsonify(
        dataobj_id=dataobj_id,
        title=dataobj["title"],
        content=dataobj.content,
        md_path=dataobj["fullpath"],
    ) if dataobj is not None else Response(status=404)
Beispiel #3
0
def get_dataobj(dataobj_id):
    """Returns dataobj of given id"""
    dataobj = data.get_item(dataobj_id)

    return jsonify(
        dataobj_id=dataobj_id,
        title=dataobj["title"],
        content=dataobj.content,
        md_path=dataobj["fullpath"],
    ) if dataobj else Response(status=404)
Beispiel #4
0
def show_dataobj(dataobj_id):
    try:
        dataobj = data.get_item(dataobj_id)
    except BaseException:
        flash("Data not found")
        return redirect("/")

    content = markdown.markdown(dataobj.content, extensions=["fenced_code"])
    return render_template("dataobjs/show.html",
                           title=dataobj["title"],
                           dataobj=dataobj,
                           content=content,
                           form=DeleteDataForm())
Beispiel #5
0
def show_dataobj(dataobj_id):
    dataobj = data.get_item(dataobj_id)

    if not dataobj:
        flash("Data could not be found!", "error")
        return redirect("/")

    if request.args.get("raw") == "1":
        return frontmatter.dumps(dataobj)

    return render_template("dataobjs/show.html",
                           title=dataobj["title"],
                           dataobj=dataobj,
                           form=forms.DeleteDataForm())
Beispiel #6
0
def test_move_data(test_app, note_fixture, client):
    create_dir("random")

    resp = client.post(
        "/dataobj/move/1",
        data={
            "path": "random",
            "submit": "true"
        },
        follow_redirects=True,
    )
    assert resp.status_code == 200
    assert "Data successfully moved to random."

    assert get_item(1)["dir"] == "random"
Beispiel #7
0
def show_dataobj(dataobj_id):
    dataobj = data.get_item(dataobj_id)

    if not dataobj:
        flash("Data could not be found!", "error")
        return redirect("/")

    if request.args.get("raw") == "1":
        return frontmatter.dumps(dataobj)

    backlinks = []
    if app.config["SEARCH_CONF"]["enabled"]:
        if app.config["SEARCH_CONF"]["engine"] == "ripgrep":
            query = f"/{dataobj_id}\)]]"  # escape query for rg
        else:
            query = f"/{dataobj_id})]]"
        incoming_links = search(query, strict=True)
        if incoming_links:
            for hit in incoming_links:
                if hit["id"] != dataobj_id:
                    backlinks.append({"title": hit["title"], "id": hit["id"]})

    # Form for moving data into another folder
    move_form = forms.MoveDataForm()
    move_form.path.choices = [("", "root directory")] + [
        (pathname, pathname) for pathname in data.get_dirs()
    ]

    post_title_form = forms.TitleForm()
    post_title_form.title.data = dataobj["title"]

    return render_template(
        "dataobjs/show.html",
        title=dataobj["title"],
        dataobj=dataobj,
        backlinks=backlinks,
        current_path=dataobj["dir"],
        form=forms.DeleteDataForm(),
        view_only=0,
        search_enabled=app.config["SEARCH_CONF"]["enabled"],
        post_title_form=post_title_form,
        move_form=move_form,
    )
Beispiel #8
0
def show_dataobj(dataobj_id):
    dataobj = data.get_item(dataobj_id)

    if not dataobj:
        flash("Data could not be found!")
        return redirect("/")

    if request.args.get("raw") == "1":
        return frontmatter.dumps(dataobj)

    extra_pandoc_args = ["--highlight-style="
                         + app.config['PANDOC_HIGHLIGHT_THEME'],
                         "--standalone"]

    content = pypandoc.convert_text(dataobj.content, 'html', format='md',
                                    extra_args=extra_pandoc_args)
    return render_template(
        "dataobjs/show.html",
        title=dataobj["title"],
        dataobj=dataobj,
        content=content,
        form=forms.DeleteDataForm())
Beispiel #9
0
def delete_dataobj(dataobj_id):
    """Deletes object of given id"""
    if not data.get_item(dataobj_id):
        return Response(status=404)
    data.delete_item(dataobj_id)
    return Response(status=204)
Beispiel #10
0
def local_edit(dataobj_id):
    dataobj = data.get_item(dataobj_id)
    if dataobj:
        data.open_file(dataobj["fullpath"])
        return Response(status=200)
    return Response(status=404)
Beispiel #11
0
def delete_bookmark(dataobj_id):
    if data.get_item(dataobj_id) is None:
        return Response(status=404)
    data.delete_item(dataobj_id)
    return Response(status=204)