Compare commits

...

15 Commits
master ... mako

@ -1,6 +1,7 @@
import os
from flask import Flask, send_from_directory
from . import prefix
from flask_mako import MakoTemplates
def create_app(test_config=None):
@ -27,6 +28,8 @@ def create_app(test_config=None):
from . import db
db.init_app(app)
mako = MakoTemplates(app)
@app.route("/favicon.ico")
def favicon():
return send_from_directory(

@ -1,5 +1,6 @@
from flask import (Blueprint, flash, g, redirect,
render_template, request, session, url_for)
request, session, url_for)
from flask_mako import render_template
from exquisite_branch.db import get_db
@ -28,8 +29,19 @@ def display():
streams.append(stream[::-1])
return render_template('display.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]
@bp.route('/linked')
def linked():
db = get_db()
branches = db.execute(
"SELECT content, branch, parent, username FROM branches"
).fetchall()
return render_template('display_linked_mako.html', branches=branches)

@ -0,0 +1,52 @@
.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;
}

@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Exquisite Branch</title>
<link rel="stylesheet" href="${url_for('static', filename='css/variables.css')}" />
<link rel="stylesheet" href="${url_for('static', filename='css/global.css')}" />
<%block name='head' %></%block>
</head>
<body>
<nav>
<%block name='nav' >
<a href="{{url_for('home.home')}}">Home</a>
<a href="{{url_for('display.display')}}">Results</a>
</%block>
</nav>
${self.body()}
</body>
</html>

@ -0,0 +1,46 @@
<%inherit file="base_mako.html" />
<%block name="head">
<link rel="stylesheet" href="${url_for('static', filename='css/display_mako.css')}">
</%block>
<main class="container">
<% from random import random %>
<% from collections import defaultdict %>
<% transform = {'NEW': ''} %>
<% visited = defaultdict(int) %>
<div class="stream">
% for branch in branches:
<% visited[branch['parent']] += 1 %>
% if visited[branch['parent']] > 1:
<% steer = (random() - 0.5) * 0.25 %>
% else:
<% steer = 0 %>
% endif
<% transform[branch['branch']] = f'{transform[branch["parent"]]} rotate({random() * 0.04 + steer}turn) translateX(100%)' %>
<div class="svg-container" style="transform: ${transform[branch['parent']]}">
<a href="${url_for('draw.draw', parent=branch['branch'], _external=True, _scheme='https')}" target="__blank">
${branch['content']}
</a>
</div>
% endfor
</div>
</main>

@ -0,0 +1,21 @@
<%inherit file="base_mako.html" />
<%block name="head">
<link rel="stylesheet" href="${url_for('static', filename='css/display_mako.css')}">
</%block>
<% from random import random %>
<% offset = 1 / (len(streams) - 1)%>
% for stream in streams:
<div class="stream">
<% transform = f'rotate({offset * loop.index}turn) translateX(100%) ' %>
% for branch in stream:
<% transform = transform + ' rotate(' + str((random() * 2 - 1) * 0.02) + 'turn) translateX(100%)'%>
<div class="svg-container" style="transform: ${transform}">${branch['content']}</div>
% endfor
</div>
% endfor

@ -0,0 +1,15 @@
autopep8==1.6.0
click==8.0.3
colorama==0.4.4
-e git+https://git.xpub.nl/kamo/exquisite-branch.git@ae185baf0c048ac5f9171314ea5e842362b99dcd#egg=exquisite_branch
Flask==2.0.2
Flask-Mako==0.4
itsdangerous==2.0.1
Jinja2==3.0.3
Mako==1.2.0
MarkupSafe==2.0.1
pycodestyle==2.8.0
python-dotenv==0.19.2
shortuuid==1.0.8
toml==0.10.2
Werkzeug==2.0.3

@ -9,6 +9,7 @@ setup(
install_requires=[
'flask',
'shortuuid',
'python-dotenv'
'python-dotenv',
'flask-mako'
],
)

Loading…
Cancel
Save