> Beaucoup de sites offrent des éditeurs de texte avancé pour décrire vos projets : Steam, Itch.io, financements participatifs ou de type "pourboire" (Patreon, Tipeee). Or, l'éditeur proposé est souvent un peu aride. Une belle présentation permet de sortir du lot et souvent le seul moyen de peaufiner votre page est d'utiliser des images. Pour les titres, voici une solution.
Vous possédez un site de financement ou une page décrivant votre jeu vidéo. Ajouter de jolis titres permettra de proposer une jolie description de votre service. La solution manuelle est d'éditer chaque titre via votre logiciel de dessin favoris.
Exemple ici avec une page de finacement participatif sur Ulule :
Notre solution, à base de script bien entendu car on est développeur,
Nous allons par commencer à dessiner notre fond de titre sans écriture.
Dans notre exemple, on va préparer un rectangle avec un joli fond et une déco :
Pour ma part, j'utilise le logiciel Inkscape et le format vectoriel SVG ; vous pouvez ainsi exporter en PNG haute résolution, généralement les sites redimentionneront pleine largeur parfaitement bien.
Nous allons faire appel à deux utilitaires :
Si vous êtes sous Debian je pense qu'un `apt install imagemagick` devrait tout installer.
Maintenant, le script en lui-même :
import os
import unicodedata
import re
def slugify(value, allow_unicode=False):
"""
Taken from https://github.com/django/django/blob/master/django/utils/text.py
Convert to ASCII if 'allow_unicode' is False. Convert spaces or repeated
dashes to single dashes. Remove characters that aren't alphanumerics,
underscores, or hyphens. Convert to lowercase. Also strip leading and
trailing whitespace, dashes, and underscores.
"""
value = str(value)
if allow_unicode:
value = unicodedata.normalize('NFKC', value)
else:
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore').decode('ascii')
value = re.sub(r'[^\w\s-]', '', value.lower())
return re.sub(r'[-\s]+', '_', value).strip('-_')
titles=["Projets logiciels", "Projets électroniques", "Projets écrits", "Pourquoi Tipeee ?", "Liens"]
for title in titles:
print(title)
cleaned_title = slugify(title, False)
print(cleaned_title)
os.system("convert -font 'QARVIC' -fill black -pointsize 50 -draw \"text 120, 85 '" + title + "'\" background.png title_" + cleaned_title +".png")
La variable "titles" est un tableau contenant vos titres à générer, dans toutes vos langues par exemple.
Le script Python fait appel à l'utilitaire "convert" qui colle un texte à une certaine position (X, Y), avec une police de caractères et une taille.
La fonction `slugify` permet de normaliser une chaîne de caractères pour pondre un nom de fichier compatible avec les systèmes de fichiers.
L'option `-fill black` permet d'écrire dans la couleur que vous voulez (un texte blanc sur fond foncé rend pas mal).
Dernière astuce : attention au nom de la police de caractères, ce n'est pas forcément intuitif.
Pour connaître le nom exact, casse comprise, exécutez la commande suivante :
anthony~> identify -list font | grep -i Qarvic
Font: QARVIC
family: QARVIC
glyphs: /home/anthony/.fonts/q/QARVIC.ttf
Font: QARVIC-Grunge
family: QARVIC Grunge
glyphs: /home/anthony/.fonts/q/QARVIC_Grunge.ttf
Font: QARVIC-icon
family: QARVIC icon
glyphs: /home/anthony/.fonts/q/QARVICicon.ttf
Ici par exemple il trouve trois font "Qarvic" mais attention aux majuscules !
Voici le résultat :