diff options
author | Thomas "Cakeisalie5" Touhey <thomas@touhey.fr> | 2019-02-11 21:41:34 +0100 |
---|---|---|
committer | Thomas "Cakeisalie5" Touhey <thomas@touhey.fr> | 2019-02-11 21:41:34 +0100 |
commit | fda7f8305fc88abfc10e45f3620e1152b014b894 (patch) | |
tree | 3584a37b40a0e1dbaae4e15d45aceba253265fa1 | |
parent | 059c0d39701048a436275b935310e99f06016935 (diff) |
Enhanced page metadata, and content.
-rwxr-xr-x | app/__init__.py | 18 | ||||
-rw-r--r-- | app/_main.py | 23 | ||||
-rw-r--r-- | app/content/default.bbcode | 3 | ||||
-rw-r--r-- | app/content/guide.bbcode | 6 | ||||
-rw-r--r-- | app/templates/default.html | 11 | ||||
-rw-r--r-- | app/templates/guide.html | 9 | ||||
-rw-r--r-- | app/templates/page.html | 13 |
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 %} |