diff --git a/TODO.md b/TODO.md deleted file mode 100644 index 03cf44a..0000000 --- a/TODO.md +++ /dev/null @@ -1,5 +0,0 @@ -TODO: comment the code - -TODO: remove new from homepage? -or -TODO: add per-new level in the xquisite branches (this makes more sense!) diff --git a/exquisite_branch/__init__.py b/exquisite_branch/__init__.py index 2482920..65dac4a 100644 --- a/exquisite_branch/__init__.py +++ b/exquisite_branch/__init__.py @@ -36,8 +36,8 @@ def create_app(test_config=None): os.path.join(app.root_path, "static"), "favicon.ico", mimetype="image/vnd.microsoft.icon", ) - from . import draw - app.register_blueprint(draw.bp) + from . import write + app.register_blueprint(write.bp) from . import share app.register_blueprint(share.bp) diff --git a/exquisite_branch/display.py b/exquisite_branch/display.py index 3559c05..ada9b0a 100644 --- a/exquisite_branch/display.py +++ b/exquisite_branch/display.py @@ -8,40 +8,38 @@ from exquisite_branch.db import get_db bp = Blueprint('display', __name__, url_prefix='/display') -@bp.route('/') -def display(): - db = get_db() - branches = db.execute( - "SELECT content, branch, parent, username FROM branches" - ).fetchall() - streams = [] - for branch in branches[::-1]: - if branch not in flatten(streams): - stream = [branch] - parent = branch['parent'] - while parent != 'NEW': - current = next( - (x for x in branches if x['branch'] == parent), None) - parent = current['parent'] - stream.append(current) +# branches = db.execute( +# "SELECT content, branch, parent, username FROM branches" +# ).fetchall() + +# streams = [] +# for branch in branches[::-1]: +# if branch not in flatten(streams): +# stream = [branch] +# parent = branch['parent'] +# while parent != 'NEW': +# current = next( +# (x for x in branches if x['branch'] == parent), None) +# parent = current['parent'] +# stream.append(current) - streams.append(stream[::-1]) +# streams.append(stream[::-1]) - return render_template('display_mako.html', branches=branches, streams=streams) +# return render_template('display_mako.html', branches=branches, streams=streams) -def flatten(t): - return [item for sublist in t for item in sublist] +# def flatten(t): +# return [item for sublist in t for item in sublist] -@bp.route('/linked') -def linked(): +@bp.route('/') +def display(): db = get_db() branches = db.execute( "SELECT content, branch, parent, username FROM branches" ).fetchall() - return render_template('display_linked_mako.html', branches=branches) \ No newline at end of file + return render_template('display.html', branches=branches) diff --git a/exquisite_branch/static/css/display.css b/exquisite_branch/static/css/display.css index 5f6ec1d..42a3af3 100644 --- a/exquisite_branch/static/css/display.css +++ b/exquisite_branch/static/css/display.css @@ -1,26 +1,41 @@ -.streams { - overflow-x: auto; - overflow-y: hidden; - position: relative; - height: 500px; + + +header { +padding: 32px; +max-width: 60ch; + } -.stream { - white-space: nowrap; - position: absolute; +header h1, +header p { +margin: 0; +} + +.container{ + display: block; + padding: 64px; } -.svg-container { +.stream, +.streams{ + /* white-space: nowrap; */ + position: relative; display: inline-block; - margin: 0; - padding: 0; + width: 40ch; position: relative; } -.author { +.text-container { position: absolute; - left: 50%; - bottom: 50px; + top: 0; + left: 0; + display: inline-block; + + +} + +.author { + position: relative; font-size: 1rem; background-color: white; } @@ -34,6 +49,3 @@ white-space: nowrap; } -.branch svg { - border-top: 1px solid currentColor; -} diff --git a/exquisite_branch/static/css/display_mako.css b/exquisite_branch/static/css/display_mako.css deleted file mode 100644 index 5f7bb80..0000000 --- a/exquisite_branch/static/css/display_mako.css +++ /dev/null @@ -1,52 +0,0 @@ - -.container{ - display: block; - padding: 2000px; -} -.streams { - overflow-x: auto; - overflow-y: hidden; - position: relative; - width: 500px; - height: 500px; - display: inline-block; -} - -.stream { - white-space: nowrap; - position: relative; - display: inline-block; - width: 500px; - height: 500px; - position: relative; -} - -.svg-container { - position: absolute; - top: 0; - left: 0; - display: inline-block; - - -} - -.author { - position: absolute; - left: 50%; - bottom: 50px; - font-size: 1rem; - background-color: white; -} - -.branches { - overflow-x: auto; - overflow-y: hidden; -} - -.branch { - white-space: nowrap; -} - -.branch svg { - border-top: 1px solid currentColor; -} diff --git a/exquisite_branch/static/css/draw.css b/exquisite_branch/static/css/draw.css deleted file mode 100644 index 778e7b3..0000000 --- a/exquisite_branch/static/css/draw.css +++ /dev/null @@ -1,32 +0,0 @@ -svg { - width: 500px; - height: 500px; - background-color: white; -} -#svg-container { - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); -} - -#previous { - position: absolute; - top: 0; - transform: translateX(-100%); -} - -#previous svg { - background: none; - border: none; -} - -#previous::after { - content: ""; - width: 100%; - height: 100%; - left: 0; - position: absolute; - transform: translateX(-25%); - background-color: var(--background); -} diff --git a/exquisite_branch/static/css/global.css b/exquisite_branch/static/css/global.css index dbd6494..c0c4166 100644 --- a/exquisite_branch/static/css/global.css +++ b/exquisite_branch/static/css/global.css @@ -13,10 +13,11 @@ body { a { color: currentColor; text-decoration: none; + user-select: all; } a:hover { - color: tomato; + color: white; } nav { diff --git a/exquisite_branch/static/css/home.css b/exquisite_branch/static/css/home.css index 66b39ea..de5de2b 100644 --- a/exquisite_branch/static/css/home.css +++ b/exquisite_branch/static/css/home.css @@ -4,7 +4,7 @@ header { } header object { - width: 100vmin; + width: 500px; height: auto; margin: 0 auto; } diff --git a/exquisite_branch/static/css/variables.css b/exquisite_branch/static/css/variables.css index d927084..f663ca1 100644 --- a/exquisite_branch/static/css/variables.css +++ b/exquisite_branch/static/css/variables.css @@ -1,4 +1,4 @@ :root { - --background: #edd; + --background: #2a9d8f; --color: black; } diff --git a/exquisite_branch/static/img/title.svg b/exquisite_branch/static/img/title.svg new file mode 100755 index 0000000..a772b33 --- /dev/null +++ b/exquisite_branch/static/img/title.svg @@ -0,0 +1,4 @@ + diff --git a/exquisite_branch/static/js/draw.js b/exquisite_branch/static/js/draw.js deleted file mode 100644 index 8935639..0000000 --- a/exquisite_branch/static/js/draw.js +++ /dev/null @@ -1,114 +0,0 @@ -// Great resource from https://stackoverflow.com/a/40700068 -// Thank you ConnorFan - -var strokeWidth = 2; -var bufferSize; - -var svgElement = document.getElementById("svgElement"); -var rect = svgElement.getBoundingClientRect(); -var path = null; -var strPath; -var buffer = []; // Contains the last positions of the mouse cursor - -svgElement.addEventListener("mousedown", function (e) { - bufferSize = document.getElementById("cmbBufferSize").value; - path = document.createElementNS("http://www.w3.org/2000/svg", "path"); - path.setAttribute("fill", "none"); - path.setAttribute("stroke", "currentColor"); - path.setAttribute("stroke-width", strokeWidth); - buffer = []; - var pt = getMousePosition(e); - appendToBuffer(pt); - strPath = "M" + pt.x + " " + pt.y; - path.setAttribute("d", strPath); - svgElement.appendChild(path); -}); - -svgElement.addEventListener("mousemove", function (e) { - if (path) { - appendToBuffer(getMousePosition(e)); - updateSvgPath(); - } -}); - -svgElement.addEventListener("mouseup", function () { - if (path) { - path = null; - } -}); - -svgElement.addEventListener("mouseleave", function () { - if (path) { - path = null; - } -}); - -var getMousePosition = function (e) { - return { - x: e.pageX - rect.left, - y: e.pageY - rect.top, - }; -}; - -var appendToBuffer = function (pt) { - buffer.push(pt); - while (buffer.length > bufferSize) { - buffer.shift(); - } -}; - -// Calculate the average point, starting at offset in the buffer -var getAveragePoint = function (offset) { - var len = buffer.length; - if (len % 2 === 1 || len >= bufferSize) { - var totalX = 0; - var totalY = 0; - var pt, i; - var count = 0; - for (i = offset; i < len; i++) { - count++; - pt = buffer[i]; - totalX += pt.x; - totalY += pt.y; - } - return { - x: totalX / count, - y: totalY / count, - }; - } - return null; -}; - -var updateSvgPath = function () { - var pt = getAveragePoint(0); - - if (pt) { - // Get the smoothed part of the path that will not change - strPath += " L" + pt.x + " " + pt.y; - - // Get the last part of the path (close to the current mouse position) - // This part will change if the mouse moves again - var tmpPath = ""; - for (var offset = 2; offset < buffer.length; offset += 2) { - pt = getAveragePoint(offset); - tmpPath += " L" + pt.x + " " + pt.y; - } - - // Set the complete current path coordinates - path.setAttribute("d", strPath + tmpPath); - } -}; - -// -// -// -// SAVE THE BRANCH - -const form = document.querySelector("form"); - -form.addEventListener("submit", () => { - let wrapper = document.createElement("div"); - wrapper.appendChild(svgElement); - form["content"].value = wrapper.innerHTML; - return true; -}); diff --git a/exquisite_branch/templates/base_mako.html b/exquisite_branch/templates/base_mako.html index d158eae..1ae9a20 100644 --- a/exquisite_branch/templates/base_mako.html +++ b/exquisite_branch/templates/base_mako.html @@ -13,8 +13,8 @@
${self.body()} diff --git a/exquisite_branch/templates/display.html b/exquisite_branch/templates/display.html index 2ccdf51..d8a0dc9 100644 --- a/exquisite_branch/templates/display.html +++ b/exquisite_branch/templates/display.html @@ -1,49 +1,44 @@ -{%extends 'base.html' %} {%block head %} - - -Here texts branch and follow their own path. Click on an excerpt to create a new branch and continue toward new meanings.
+