aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorThomas "Cakeisalie5" Touhey <thomas@touhey.fr>2019-02-11 21:41:34 +0100
committerThomas "Cakeisalie5" Touhey <thomas@touhey.fr>2019-02-11 21:41:34 +0100
commitfda7f8305fc88abfc10e45f3620e1152b014b894 (patch)
tree3584a37b40a0e1dbaae4e15d45aceba253265fa1 /app
parent059c0d39701048a436275b935310e99f06016935 (diff)
Enhanced page metadata, and content.
Diffstat (limited to 'app')
-rwxr-xr-xapp/__init__.py18
-rw-r--r--app/_main.py23
-rw-r--r--app/content/default.bbcode3
-rw-r--r--app/content/guide.bbcode6
-rw-r--r--app/templates/default.html11
-rw-r--r--app/templates/guide.html9
-rw-r--r--app/templates/page.html13
7 files changed, 58 insertions, 25 deletions
diff --git a/app/__init__.py b/app/__init__.py
index be89656..0fd1fad 100755
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -10,6 +10,7 @@ import os.path as _path
from flask import Flask as _Flask
from flask_assets import (Environment as _AssetsEnvironment,
Bundle as _AssetsBundle)
+from textoutpc import tohtml as _translate
from ._main import main as _main
@@ -17,12 +18,27 @@ __all__ = ["app"]
# Make the app and register blueprints.
-_gd = lambda x: _path.relpath(_path.join(_path.dirname(__file__), x))
+_gd = lambda *x: _path.relpath(_path.join(_path.dirname(__file__), *x))
app = _Flask('textout',
template_folder = _gd('templates'),
static_folder = _gd('static'), static_url_path = '/static')
+app.config['URL'] = 'https://textout.touhey.fr'
+
+# Register the blueprints.
+
app.register_blueprint(_main)
+# Load the default texts.
+
+with app.open_resource(_path.join('app', 'content', 'default.bbcode'),
+ 'r') as f:
+ text = f.read().rstrip()
+ app.config['TEXT_DEFAULT'] = text
+ app.config['TEXT_DEFAULT_TRANSLATED'] = _translate(text) if text else None
+
+with app.open_resource(_path.join('app', 'content', 'guide.bbcode'), 'r') as f:
+ app.config['TEXT_GUIDE'] = _translate(f.read())
+
# Add the assets.
_assets = _AssetsEnvironment(app)
diff --git a/app/_main.py b/app/_main.py
index 3f93804..3c2a973 100644
--- a/app/_main.py
+++ b/app/_main.py
@@ -1,38 +1,37 @@
#!/usr/bin/env python3
from flask import (Blueprint as _Blueprint, render_template as _template,
- request as _r)
+ request as _r, current_app as _app)
from textoutpc import tohtml as _translate
__all__ = ["main"]
main = _Blueprint('main', __name__)
-@main.route('/', methods = ['GET'])
-@main.route('/index.html', methods = ['GET'])
-def _empty_page():
- """ Page sans entrée. """
-
- return _template('page.html', result = None, text = '')
-
-@main.route('/index.html', methods = ['POST'])
+@main.route('/', methods = ['GET', 'POST'])
+@main.route('/index.html', methods = ['GET', 'POST'])
def _process_page():
""" Page avec entrée. """
result = None
text = ''
- if 'text' in _r.form:
+ if _r.method == 'POST' and 'text' in _r.form:
text = _r.form['text'].strip()
if text:
result = _translate(text)
+ else:
+ text = _app.config['TEXT_DEFAULT']
+ result = _app.config['TEXT_DEFAULT_TRANSLATED']
- return _template('page.html', result = result, text = text)
+ return _template('page.html', text = text, result = result,
+ url = _app.config['URL'])
@main.route('/guide.html', methods = ['GET'])
def _guide_page():
""" Page de guide. """
- return _template('guide.html')
+ return _template('guide.html', content = _app.config['TEXT_GUIDE'],
+ url = _app.config['URL'])
# End of file.
diff --git a/app/content/default.bbcode b/app/content/default.bbcode
new file mode 100644
index 0000000..7064497
--- /dev/null
+++ b/app/content/default.bbcode
@@ -0,0 +1,3 @@
+[list]
+[*]Bonjour [url=https://planet-casio.com/Fr/]le monde[/] !
+[*][rot=25]ibm[/]9000
diff --git a/app/content/guide.bbcode b/app/content/guide.bbcode
new file mode 100644
index 0000000..3b02e7b
--- /dev/null
+++ b/app/content/guide.bbcode
@@ -0,0 +1,6 @@
+Le BBCode est encore, à ce jour, le langage de formattage principal de la communauté de [url=https://planet-casio.com/Fr/]Planète Casio[/]. Il utilise
+des balises reconnaissables à leurs crochets. Par exemple :
+
+[code]Le BBCode sert par exemple à mettre [b]en gras[/b], [i]en italique[/i], [u]souligner[/u], [color=blue]et beaucoup d'autres choses[/color] ![/code]
+
+TODO : continuer à écrire ce petit tutoriel.
diff --git a/app/templates/default.html b/app/templates/default.html
index 1cd9567..e3c782f 100644
--- a/app/templates/default.html
+++ b/app/templates/default.html
@@ -3,21 +3,18 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
-<title>Testing textoutpc</title>
-<meta name="author" content="Thomas Touhey">
-<link rel="author" href="https://thomas.touhey.fr/">
-<link rel="icon" href="{{ url_for('static', filename = 'favicon.png') }}">
+<link rel="icon" href="{{ url_for('static', filename = 'favicon.png') }}">
<!--[if IE]>
<link rel="shortcut icon" type="image/ico" href="{{ url_for('static', filename = 'favicon.ico') }}">
<![endif]-->
+{% block meta %}{% endblock %}
{% assets "css" %}
<link rel="stylesheet" type="text/css" href="{{ ASSET_URL }}">
-{% endassets %}
-</head><body><div class="container">
+{% endassets %}</head><body><div class="container">
<div class="header">
<h1>textoutpc</h1><p> — moteur de traduction BBcode</p>
-<ul class="nav"><li><a href="index.html">Tester</a></li><li><a href="guide.html">Guide</a></li></ul>
+<ul class="nav"><li><a href="{{ url }}/">Tester</a></li><li><a href="{{ url }}/guide.html">Guide</a></li></ul>
</div>
{% block content %}{% endblock %}
diff --git a/app/templates/guide.html b/app/templates/guide.html
index e72f74e..ec5b642 100644
--- a/app/templates/guide.html
+++ b/app/templates/guide.html
@@ -1,2 +1,9 @@
{% extends "default.html" %}
-{% block content %}<div class="desc"><p>À venir : une description du langage.</p></div>{% endblock %}
+{% block meta %}<title>A guide to Planète Casio's flavour of BBcode</title>
+<meta property="og:description" name="description" content="A tutorial for learning all there is to know about Planète Casio's flavour of BBcode.">
+<link rel="canonical" href="{{ url }}/guide.html">
+<meta name="author" content="Thomas Touhey">
+<link rel="author" content="https://thomas.touhey.fr/">{%
+endblock %}{% block content %}<div class="desc textout">
+{% autoescape false %}{{ content }}{% endautoescape %}
+</div>{% endblock %}
diff --git a/app/templates/page.html b/app/templates/page.html
index d664780..e91f300 100644
--- a/app/templates/page.html
+++ b/app/templates/page.html
@@ -1,8 +1,13 @@
{% extends "default.html" %}
-{% block content %}{% if result != None
+{% block meta %}<title>textoutpc — Planète Casio's flavour of BBcode</title>
+<meta property="og:description" name="description" content="Official website for testing “textout”, Planète Casio's flavour of BBcode.">
+<link rel="canonical" href="{{ url }}/">
+<meta name="author" content="Thomas Touhey">
+<link rel="author" content="https://thomas.touhey.fr/">{%
+endblock %}{% block content %}{% if result != None
%}<!-- Résultat de la traduction. -->
-<div class="demo">
+<div class="demo textout">
{% autoescape false %}{{ result }}{% endautoescape %}
</div>
@@ -10,13 +15,13 @@
%}<!-- Zone d'entrée de texte. -->
<div class="inp">
- <form action="index.html" method="POST">
+ <form method="POST">
<textarea name="text" placeholder="Votre texte ici…">{{ text }}</textarea>
<input type="submit" value="Voir le résultat">
</form>
</div>
<div class="desc">
-<p><a href="https://forge.touhey.fr/pc/textout.git/">textoutpc</a> est un projet de traducteur d'un langage de formattage, le BBcode (adapté par et au site <a href="https://www.planet-casio.com/Fr/">Planète Casio</a>), en d'autres dont le HTML. Ce site est la démonstration de ce traducteur.</p>
+<p><a href="https://forge.touhey.fr/pc/textout.git/">textoutpc</a> est un projet de traducteur d'un langage de formattage, le BBcode (adapté par et au site <a href="https://www.planet-casio.com/Fr/">Planète Casio</a>), en d'autres dont le HTML. Ce site, <a href="https://forge.touhey.fr/pc/textout-demo.git/">dont la source est disponible ici</a>, est la démonstration de ce traducteur.</p>
<p>Pour tester le traducteur, entrez du texte dans la zone d'écriture et cliquez sur « Voir le résultat ». Pour parler au sujet de ce traducteur, il y a <a href="https://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=15106">ce sujet sur Planète Casio</a>. Pour signaler des failles de sécurité (XSS, RCE) dans le traducteur, merci de me contacter par e-mail sur <a href="mailto:thomas@touhey.fr">thomas@touhey.fr</a>.</p>
</div>{% endblock %}