commit d3a81473f74f0a558c5ee8df625f1e536782710b
Author: tierce
Date: Sun Aug 22 20:40:02 2021 +0200
premier commit
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..390d044
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,89 @@
+PY?=python3
+PELICAN?=pelican
+PELICANOPTS=
+
+BASEDIR=$(CURDIR)
+INPUTDIR=$(BASEDIR)/content
+OUTPUTDIR=$(BASEDIR)/output
+CONFFILE=$(BASEDIR)/pelicanconf.py
+PUBLISHCONF=$(BASEDIR)/publishconf.py
+
+SSH_HOST=gnuragist.es
+SSH_PORT=22
+SSH_USER=admin
+SSH_TARGET_DIR=/var/www/my_webapp/www
+
+
+DEBUG ?= 0
+ifeq ($(DEBUG), 1)
+ PELICANOPTS += -D
+endif
+
+RELATIVE ?= 0
+ifeq ($(RELATIVE), 1)
+ PELICANOPTS += --relative-urls
+endif
+
+SERVER ?= "0.0.0.0"
+
+PORT ?= 0
+ifneq ($(PORT), 0)
+ PELICANOPTS += -p $(PORT)
+endif
+
+
+help:
+ @echo 'Makefile for a pelican Web site '
+ @echo ' '
+ @echo 'Usage: '
+ @echo ' make localhtml (re)generate the web site for local'
+ @echo ' make html (re)generate the web site '
+ @echo ' make clean remove the generated files '
+ @echo ' make regenerate regenerate files upon modification '
+ @echo ' make publish generate using production settings '
+ @echo ' make serve [PORT=8000] serve site at http://localhost:8000'
+ @echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
+ @echo ' make devserver [PORT=8000] serve and regenerate together '
+ @echo ' make devserver-global regenerate and serve on 0.0.0.0 '
+ @echo ' make ssh_upload upload the web site via SSH '
+ @echo ' make rsync_upload upload the web site via rsync+ssh '
+ @echo ' '
+ @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
+ @echo 'Set the RELATIVE variable to 1 to enable relative urls '
+ @echo ' '
+
+localhtml:
+ "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) --relative-urls
+
+html:
+ "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
+
+clean:
+ [ ! -d "$(OUTPUTDIR)" ] || rm -rf "$(OUTPUTDIR)"
+
+regenerate:
+ "$(PELICAN)" -r "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
+
+serve:
+ "$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
+
+serve-global:
+ "$(PELICAN)" -l "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS) -b $(SERVER)
+
+devserver:
+ "$(PELICAN)" -lr "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(CONFFILE)" $(PELICANOPTS)
+
+devserver-global:
+ $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -b 0.0.0.0
+
+publish:
+ "$(PELICAN)" "$(INPUTDIR)" -o "$(OUTPUTDIR)" -s "$(PUBLISHCONF)" $(PELICANOPTS)
+
+ssh_upload: publish
+ scp -P $(SSH_PORT) -r "$(OUTPUTDIR)"/* "$(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)"
+
+rsync_upload: publish
+ rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --include tags --cvs-exclude --delete "$(OUTPUTDIR)"/ "$(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)"
+
+
+.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8988430
--- /dev/null
+++ b/README.md
@@ -0,0 +1,62 @@
+# Gnuragistes
+
+## Ressources
+
+* [ForkAwsome cheatsheet](https://forkaweso.me/Fork-Awesome/cheatsheet/)
+* [Cool and responsive buttons](https://fdossena.com/?p=html5cool/buttons/i.frag)
+* [Jinja](https://jinja.palletsprojects.com/en/3.0.x/templates/)
+* [Pelican - templates and variables](https://docs.getpelican.com/en/latest/themes.html#templates-and-variables)
+
+## Contenu
+
+Sur le site …
+
+- une page d'acceuil
+- des articles
+- des auteurs - qui sont potentiellement les gnuragistes
+- des mots clés
+- de quoi nous contacter
+
+
+## Menu
+
+Sous forme de boutons, sans sous-menu, qui se mettent les uns à côté des autres.
+
+### Links (dans le pelicanconf.py)
+
+Les liens « statiques » sont définit dans `pelicanconf.py`.
+
+### Catégories (comme Faimaison)
+
+À découvrir : les mécanismes de Pelican.
+
+
+## Zone de titre(s)
+
+- Un logo pour retourner sur la home page
+- Un titre
+- Un sous-titre
+
+## Contenu
+
+## Fork-Awsome
+
+Puisque c'est un repo git qui se trouve dans `template/gnuragistes/static/css/Fork-Awesome`.
+
+Pour éviter les problèmes, dans un premier temps le `.gitignore` contient ce chemin et le `pelicanconf.py` ignore aussi ce dossier grâce à `IGNORE_FILES = ['.git']`.
+
+Il faudrait éventuellement approfondir le sujet en utilisant la notion de submodule ou subtree.
+
+Voir : https://delicious-insights.com/fr/articles/git-submodules/
+
+### Base
+
+Se retrouve sur toutes les pages.
+
+### Page d'acceuil
+
+C'est pricipallement le fichier `template/gnuragistes/index.html` dont le contenu est pricipalement fait dans le template, mis à part quelques variables.
+
+### Articles
+
+C'est
\ No newline at end of file
diff --git a/content/fichiers/Richard Stallman et la révolution du logiciel libre.pdf b/content/fichiers/Richard Stallman et la révolution du logiciel libre.pdf
new file mode 100644
index 0000000..12ca795
Binary files /dev/null and b/content/fichiers/Richard Stallman et la révolution du logiciel libre.pdf differ
diff --git a/content/images/gnu/heckert_gnu_pink.svg b/content/images/gnu/heckert_gnu_pink.svg
new file mode 100644
index 0000000..f1640b0
--- /dev/null
+++ b/content/images/gnu/heckert_gnu_pink.svg
@@ -0,0 +1,97 @@
+
+
+
+
diff --git a/content/images/home/map.png b/content/images/home/map.png
new file mode 100644
index 0000000..4936341
Binary files /dev/null and b/content/images/home/map.png differ
diff --git a/content/images/home/zebras-sans-G-blanc.png b/content/images/home/zebras-sans-G-blanc.png
new file mode 100644
index 0000000..7103801
Binary files /dev/null and b/content/images/home/zebras-sans-G-blanc.png differ
diff --git a/content/images/linux/ewing-tux.png b/content/images/linux/ewing-tux.png
new file mode 100644
index 0000000..02e22e2
Binary files /dev/null and b/content/images/linux/ewing-tux.png differ
diff --git a/content/pages/contact.md b/content/pages/contact.md
new file mode 100644
index 0000000..01f5561
--- /dev/null
+++ b/content/pages/contact.md
@@ -0,0 +1,10 @@
+---
+Title: Contact
+ShortTitle: Contact
+Date: 2019-10-10
+Modified: 2021-07-04
+---
+
+# Contact
+
+help@guragist.es
\ No newline at end of file
diff --git a/content/pages/gnu.md b/content/pages/gnu.md
new file mode 100644
index 0000000..59ae169
--- /dev/null
+++ b/content/pages/gnu.md
@@ -0,0 +1,34 @@
+---
+pagename: GNU is Not Unix
+title: GNU
+subtitle: GNU N'est pas Unix
+description: Mais c'est quoi un système d'exploitation ?
+date: 2021-07-01
+modified: 2021-07-04
+---
+
+
+
+La [Tête de GNU](https://www.gnu.org/graphics/agnuhead.fr.html)
+une image avec une longue histoire,
+dessinée par Étienne Suvasa.
+
+Depuis 1996,
+elle accompagne la horde,
+celles des gens qui font du libre,
+une aventure, une passion,
+un projet de société,
+des logiciels émancipateurs,
+du code source aux utilisateur·ice·s.
+
+Les gnuragistes la voient en rose,
+pour poursuivre avec vous,
+son chemin, sa route, sa destinée,
+vers une informatique plus juste et équitable.
+
+
+
+GNU est un [sigle récursif](https://fr.wikipedia.org/wiki/Sigle_r%C3%A9cursif) qui veut dire GNU is Not Unix et c'est un projet né en 1983.
+En 2021, nous sommes heureux·ses et fière d'articuler notre activité « digitale » autour des valeurs qui accompagnent ce projet.
+N'hésitez pas à flâner sur les pages Wikipédia du [projet GNU](https://fr.wikipedia.org/wiki/Projet_GNU) pour explorer une autre façon de faire de l'informatique.
+Nous en parlons volontiers avec vous et si vous avez besoin de nous, vous trouverez notre adresse mail et notre téléphone sur [la page d'accueil](.).
\ No newline at end of file
diff --git a/content/pages/home.md b/content/pages/home.md
new file mode 100644
index 0000000..0a8ba7a
--- /dev/null
+++ b/content/pages/home.md
@@ -0,0 +1,54 @@
+---
+pagename: Home
+title: GNUragistes !
+subtitle: Support Gnu/Linux - Réanimistes d'ordinateurs libres
+description: help@gnuragist.es - 0466/47.25.33
+date: 2019-10-10
+modified: 2021-07-04
+save_as: index.html
+---
+
+
+gnuragistes,coucou
+les gentil·le·s desrangé·e·s,
+enragé·e·s du logiciel Libre,
+dédient quelques moments
+
+à vous pointer
+sur les dangers
+des mafias gafam,
+
+à prendre des résolutions,
+à chercher des vraies solutions,
+en plus, sans trop dépenser.
+
+juste de questionner,
+pourquoi autant de fortuné·e·s,
+sollicitent avec passion,
+votre temps et vos données.
+
+
+
+
+Un soucis, des questions, besoin d’aide avec votre [GNU](/gnu.html)/[Linux](/linux.html) ? Nous pouvons vous aider vous ou votre association. Mises à jour, sauvegardes, imprimantes, carte d’identité électronique, installation de votre serveur personnel ou associatif sur base de [Yunohost](https://yunohost.org) (Mail, [Nextcloud](https://fr.wikipedia.org/wiki/Nextcloud), Agendas, Contacts, [Dokuwiki](https://fr.wikipedia.org/wiki/DokuWiki)…)
+
+
+
+
+
+
+
+Au [Hacklab](https://hacklab.brussels/)
+Avenue Princesse Elisabeth 46
+1030 Schaerbeek
+
+
+Devenez membres à prix libre.
+Versement mensuel souhaité.
+IBAN: BE63 5230 8118 2308
+BIC: TRIOBEBB
+
+
+En semaine, la journée, le soir ou le week-end. et si vous avez envie de lire un truc, pourquoi pas la [biographie de RMS](/fichiers/Richard Stallman et la révolution du logiciel libre.pdf) ?
+
+C'est maGNUfique!
\ No newline at end of file
diff --git a/content/pages/linux.md b/content/pages/linux.md
new file mode 100644
index 0000000..82bca51
--- /dev/null
+++ b/content/pages/linux.md
@@ -0,0 +1,38 @@
+---
+pagename: Linux
+title: Linux
+subtitle: un noyau libre pour des logiciels libres
+description: Mais c'est quoi un noyau ?
+date: 2021-07-01
+modified: 2021-07-04
+---
+
+
+
+La mascotte de Linux,
+c'est [Tux](https://fr.wikipedia.org/wiki/Tux),
+un manchot mignon,
+pour représenter un noyau costaud.
+
+[Linux](https://fr.wikipedia.org/wiki/Noyau_Linux) est dans vos ordiphones,
+dans vos boxes Internet,
+dans vos ordinateurs libres,
+dans les serveurs du monde entier,
+et même jusque Mars, dans le drône Ingenuity.
+
+Un noyau de code,
+qui fait germer des envies de liberté,
+au cœur de tant de systèmes informatiques,
+trop souvent ignoré, il vous invite à explorer.
+
+Les [gnuragistes](.) le voient en rose,
+pour poursuivre avec vous,
+son chemin, sa route, sa destinée,
+vers une informatique plus juste et équitable.
+
+
+
+Des milliers de contributeurs, trop peu de contributrices qui jonglent aves du code pour rendre possible le fonctionnement du matériel.
+Parce que oui, le rôle principal d'un noyau c'est de piloter l'électronique que vous avez entre le mains.
+[Depuis 1991](https://en.wikipedia.org/wiki/Linux_kernel_version_history), des individus, des constructeurs, des fondeurs, des organisations allant de l'entreprise capitaliste à l'association sans but lucratif, en passant par les fondations, [pondent des lignes de codes](https://git.kernel.org/).
+Pour eux, pour elles, pour nous, pour vous, sans se soucier de ce que vous en ferez. Il faut juste que ça fonctionne et que ce soit fiable.
\ No newline at end of file
diff --git a/content/projet/collectif.md b/content/projet/collectif.md
new file mode 100644
index 0000000..7f19bc1
--- /dev/null
+++ b/content/projet/collectif.md
@@ -0,0 +1,10 @@
+---
+Title: Un projet collectif
+ShortTitle: Collectif
+Date: 2021-07-01
+Modified: 2021-07-04
+---
+
+C'est ensemble, ou ce n'est pas.
+
+Sieste, recherche et développement.
\ No newline at end of file
diff --git a/content/projet/gnuragistes.md b/content/projet/gnuragistes.md
new file mode 100644
index 0000000..03f0e65
--- /dev/null
+++ b/content/projet/gnuragistes.md
@@ -0,0 +1,6 @@
+Title: Le projet GNUragistes
+ShortTitle: Projet
+Date: 2021-07-01
+Modified: 2021-07-04
+
+Le plus chouette projet de tout les temps !
\ No newline at end of file
diff --git a/pelicanconf.py b/pelicanconf.py
new file mode 100644
index 0000000..58d8bca
--- /dev/null
+++ b/pelicanconf.py
@@ -0,0 +1,58 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+
+TOOLBOX = False # Displays some variables from toolbox.html
+
+AUTHOR = 'Gnuragistes'
+SITENAME = 'Gnuragist.es'
+SITEURL = 'https://gnuragist.es'
+
+PATH = 'content'
+STATIC_PATHS = ['images','fichiers']
+PAGE_PATHS = ['pages']
+
+TIMEZONE = 'Europe/Brussels'
+
+DEFAULT_LANG = u'fr'
+
+# Les fichiers produits sont mis dans des dossiers
+ARTICLE_URL = '/{category}/{slug}.html'
+ARTICLE_SAVE_AS = '{category}/{slug}.html'
+PAGE_SAVE_AS = '{slug}.html'
+
+
+# Feed generation is usually not desired when developing
+FEED_ALL_ATOM = None
+CATEGORY_FEED_ATOM = None
+TRANSLATION_FEED_ATOM = None
+AUTHOR_FEED_ATOM = None
+AUTHOR_FEED_RSS = None
+
+# Liens statiques utilisés dans le menu.
+# ('texte affiché','url','icone ForkAwsome')
+# Pour les icones ForkAwsome voir https://forkaweso.me/Fork-Awesome/cheatsheet/
+MENUITEMS = (('Home', './', 'fa-home'),
+ ('Wiki', 'https://wiki.gnuragist.es', 'fa-book'),
+ ('Git Sources', 'https://git.gnuragist.es/git/wildebeest/website','fa-gitea'),
+ ('Webmail', 'https://mamifere.gnuragist.es','fa-envelope'),
+ ('Pads', 'https://doc.gnuragist.es','fa-file-text'),
+ ('Forum', 'https://ps.zoethical.org/c/ps/gnuragistes/130','fa-activitypub'),)
+
+# Social widget
+SOCIAL = (('You can add links in your config file', '#'),
+ ('Another social link', '#'),)
+
+DEFAULT_PAGINATION = True
+
+THEME = 'template/gnuragistes'
+
+# Exclure des éléments inutiles… mais ça fonctionne pas ??
+#STATIC_EXCLUDES = ['template/gnuragistes/static/css/Fork-Awesome/.github', 'template/gnuragistes/static/css/Fork-Awesome/*']
+
+# Uncomment following line if you want document-relative URLs when developing
+#RELATIVE_URLS = True
+
+
+DISPLAY_PAGES_ON_MENU = True
+# Pour ignorer le contenu de template/gnuragistes/static/css/Fork-Awesome/.git et tout ce qui est .git
+IGNORE_FILES = ['.git']
\ No newline at end of file
diff --git a/publishconf.py b/publishconf.py
new file mode 100644
index 0000000..442946d
--- /dev/null
+++ b/publishconf.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*- #
+
+# This file is only used if you use `make publish` or
+# explicitly specify it as your config file.
+
+import os
+import sys
+sys.path.append(os.curdir)
+from pelicanconf import *
+
+# If your site is available via HTTPS, make sure SITEURL begins with https://
+SITEURL = 'https://gnuragist.es'
+RELATIVE_URLS = False
+
+FEED_ALL_ATOM = 'feeds/all.atom.xml'
+CATEGORY_FEED_ATOM = 'feeds/{slug}.atom.xml'
+
+DELETE_OUTPUT_DIRECTORY = True
+
+# Following items are often useful when publishing
+
+#DISQUS_SITENAME = ""
+#GOOGLE_ANALYTICS = ""
\ No newline at end of file
diff --git a/tasks.py b/tasks.py
new file mode 100644
index 0000000..7cdb19b
--- /dev/null
+++ b/tasks.py
@@ -0,0 +1,131 @@
+# -*- coding: utf-8 -*-
+
+import os
+import shlex
+import shutil
+import sys
+import datetime
+
+from invoke import task
+from invoke.main import program
+from invoke.util import cd
+from pelican import main as pelican_main
+from pelican.server import ComplexHTTPRequestHandler, RootedHTTPServer
+from pelican.settings import DEFAULT_CONFIG, get_settings_from_file
+
+SETTINGS_FILE_BASE = 'pelicanconf.py'
+SETTINGS = {}
+SETTINGS.update(DEFAULT_CONFIG)
+LOCAL_SETTINGS = get_settings_from_file(SETTINGS_FILE_BASE)
+SETTINGS.update(LOCAL_SETTINGS)
+
+CONFIG = {
+ 'settings_base': SETTINGS_FILE_BASE,
+ 'settings_publish': 'publishconf.py',
+ # Output path. Can be absolute or relative to tasks.py. Default: 'output'
+ 'deploy_path': SETTINGS['OUTPUT_PATH'],
+ # Remote server configuration
+ 'ssh_user': 'admin',
+ 'ssh_host': 'gnuragist.es',
+ 'ssh_port': '22',
+ 'ssh_path': '/var/www/my_webapp/www',
+ # Host and port for `serve`
+ 'host': 'localhost',
+ 'port': 8000,
+}
+
+@task
+def clean(c):
+ """Remove generated files"""
+ if os.path.isdir(CONFIG['deploy_path']):
+ shutil.rmtree(CONFIG['deploy_path'])
+ os.makedirs(CONFIG['deploy_path'])
+
+@task
+def build(c):
+ """Build local version of site"""
+ pelican_run('-s {settings_base}'.format(**CONFIG))
+
+@task
+def rebuild(c):
+ """`build` with the delete switch"""
+ pelican_run('-d -s {settings_base}'.format(**CONFIG))
+
+@task
+def regenerate(c):
+ """Automatically regenerate site upon file modification"""
+ pelican_run('-r -s {settings_base}'.format(**CONFIG))
+
+@task
+def serve(c):
+ """Serve site at http://$HOST:$PORT/ (default is localhost:8000)"""
+
+ class AddressReuseTCPServer(RootedHTTPServer):
+ allow_reuse_address = True
+
+ server = AddressReuseTCPServer(
+ CONFIG['deploy_path'],
+ (CONFIG['host'], CONFIG['port']),
+ ComplexHTTPRequestHandler)
+
+ sys.stderr.write('Serving at {host}:{port} ...\n'.format(**CONFIG))
+ server.serve_forever()
+
+@task
+def reserve(c):
+ """`build`, then `serve`"""
+ build(c)
+ serve(c)
+
+@task
+def preview(c):
+ """Build production version of site"""
+ pelican_run('-s {settings_publish}'.format(**CONFIG))
+
+@task
+def livereload(c):
+ """Automatically reload browser tab upon file modification."""
+ from livereload import Server
+
+ def cached_build():
+ cmd = '-s {settings_base} -e CACHE_CONTENT=True LOAD_CONTENT_CACHE=True'
+ pelican_run(cmd.format(**CONFIG))
+
+ cached_build()
+ server = Server()
+ theme_path = SETTINGS['THEME']
+ watched_globs = [
+ CONFIG['settings_base'],
+ '{}/templates/**/*.html'.format(theme_path),
+ ]
+
+ content_file_extensions = ['.md', '.rst']
+ for extension in content_file_extensions:
+ content_glob = '{0}/**/*{1}'.format(SETTINGS['PATH'], extension)
+ watched_globs.append(content_glob)
+
+ static_file_extensions = ['.css', '.js']
+ for extension in static_file_extensions:
+ static_file_glob = '{0}/static/**/*{1}'.format(theme_path, extension)
+ watched_globs.append(static_file_glob)
+
+ for glob in watched_globs:
+ server.watch(glob, cached_build)
+ server.serve(host=CONFIG['host'], port=CONFIG['port'], root=CONFIG['deploy_path'])
+
+
+@task
+def publish(c):
+ """Publish to production via rsync"""
+ pelican_run('-s {settings_publish}'.format(**CONFIG))
+ c.run(
+ 'rsync --delete --exclude ".DS_Store" -pthrvz -c '
+ '-e "ssh -p {ssh_port}" '
+ '{} {ssh_user}@{ssh_host}:{ssh_path}'.format(
+ CONFIG['deploy_path'].rstrip('/') + '/',
+ **CONFIG))
+
+
+def pelican_run(cmd):
+ cmd += ' ' + program.core.remainder # allows to pass-through args to pelican
+ pelican_main(shlex.split(cmd))
\ No newline at end of file
diff --git a/template/gnuragistes/static/css/Fork-Awesome b/template/gnuragistes/static/css/Fork-Awesome
new file mode 160000
index 0000000..540fa14
--- /dev/null
+++ b/template/gnuragistes/static/css/Fork-Awesome
@@ -0,0 +1 @@
+Subproject commit 540fa1467f6381b6212635d9e7cc222cd1faa280
diff --git a/template/gnuragistes/static/css/classes.css b/template/gnuragistes/static/css/classes.css
new file mode 100644
index 0000000..dbe529a
--- /dev/null
+++ b/template/gnuragistes/static/css/classes.css
@@ -0,0 +1,82 @@
+/* classes */
+
+.toolbox
+{
+ color:white;
+ background-color: grey;
+ position: fixed;
+ overflow: hidden;
+ z-index: 2400;
+ opacity: 0.70;
+ right: 0px;
+ top: 0px !important;
+ -webkit-transition: all 0.5s ease-in-out;
+ -moz-transition: all 0.5s ease-in-out;
+ -ms-transition: all 0.5s ease-in-out;
+ -o-transition: all 0.5s ease-in-out;
+ transition: all 0.5s ease-in-out;
+ padding: 2em;
+}
+
+.hide
+{
+ visibility: hidden;
+}
+
+.right
+{
+ float: right;
+}
+
+.left
+{
+ float: left;
+}
+
+.white
+{
+ color: white;
+}
+
+.footer
+{
+ color:magenta;
+}
+
+a.button
+{
+ display:inline-block;
+ padding:0.35em 1.2em;
+/* border:0.1em solid magenta; */
+ margin:0 0.3em 0.3em 0;
+ border-radius:0.12em;
+ box-sizing: border-box;
+ text-decoration:none;
+ color: lightgreen;
+ text-align:center;
+ transition: all 0.2s;
+}
+
+a.button > i
+{
+ padding-right: 0.5em;
+ color: yellow;
+}
+
+a.button:hover, a:hover
+{
+ color:#0F0F0F;
+ background-color: lightgreen;
+}
+
+a.button:hover > i
+{
+ padding-right: 0.5em;
+ color: #0F0F0F;
+}
+
+a.selected
+{
+/* border:0.1em solid lightgreen; */
+}
+
diff --git a/template/gnuragistes/static/css/gnuragistes.css b/template/gnuragistes/static/css/gnuragistes.css
new file mode 100644
index 0000000..c6f78c0
--- /dev/null
+++ b/template/gnuragistes/static/css/gnuragistes.css
@@ -0,0 +1,129 @@
+/* includes */
+@import "classes.css";
+@import "Fork-Awesome/css/fork-awesome.min.css";
+
+/* fonts */
+@font-face
+{
+ font-family: "OpenDyslexic";
+ src: url("../fonts/OpenDyslexic-Regular.eot");
+ src: url("../fonts/OpenDyslexic-Regular.woff") format("woff"),
+ url("../fonts/OpenDyslexic-Regular.ttf") format("truetype"),
+ url("../fonts/OpenDyslexic-Regular.svg") format("svg");
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* common html tags */
+body
+{
+ background-color: #0F0F0F;
+ font-family: OpenDyslexic;
+ color: darkturquoise;
+ max-width: 85%;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 1rem;
+ line-height: 3rem;
+ /*background: linear-gradient(to left top, #0F0F0F, #000) fixed;*/
+}
+
+ul
+{
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ min-height: 8vh;
+ font-weight: bold;
+ font-size: 2rem;
+ list-style: none;
+ padding-left: 1rem;
+}
+
+li a,
+a
+{
+ text-decoration: none;
+ color: lightgreen;
+}
+
+h1
+{
+ font-size: 4rem;
+ color: white;
+}
+
+h2
+{
+ font-size: 3rem;
+ color: white;
+}
+
+h3
+{
+ font-size: 2rem;
+ color: white;
+}
+
+hr
+{
+ border: 0.3rem solid grey;
+ border-radius: 0.5rem;
+}
+
+img
+{
+ max-width: 50%;
+ height: auto;
+}
+
+p
+{
+ font-size: 2rem;
+ /*text-transform: uppercase;*/
+ font-weight: bold;
+}
+
+/* for smaller screens transformations */
+@media (max-width: 1024px)
+{
+ /* common html tags */
+ body
+ {
+ line-height: 1.8;
+ }
+
+ div
+ {
+ font-size: 1.6rem;
+ }
+
+ h1
+ {
+ font-size: 4rem;
+ }
+
+ h2
+ {
+ font-size: 3rem;
+ }
+
+ h3
+ {
+ font-size: 2rem;
+ }
+
+ img
+ {
+ max-width: 90%;
+ height: auto;
+ }
+
+ p
+ {
+ font-size: 2rem;
+ text-transform: uppercase;
+ font-weight: bold;
+ }
+
+}
diff --git a/template/gnuragistes/static/fonts/OpenDyslexic-Regular.eot b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.eot
new file mode 100644
index 0000000..0e4e971
Binary files /dev/null and b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.eot differ
diff --git a/template/gnuragistes/static/fonts/OpenDyslexic-Regular.otf b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.otf
new file mode 100644
index 0000000..1a30272
Binary files /dev/null and b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.otf differ
diff --git a/template/gnuragistes/static/fonts/OpenDyslexic-Regular.ttf b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.ttf
new file mode 100644
index 0000000..e784934
Binary files /dev/null and b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.ttf differ
diff --git a/template/gnuragistes/static/fonts/OpenDyslexic-Regular.woff b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.woff
new file mode 100644
index 0000000..fdf9e37
Binary files /dev/null and b/template/gnuragistes/static/fonts/OpenDyslexic-Regular.woff differ
diff --git a/template/gnuragistes/static/images/zebras-favicon.png b/template/gnuragistes/static/images/zebras-favicon.png
new file mode 100644
index 0000000..60445fd
Binary files /dev/null and b/template/gnuragistes/static/images/zebras-favicon.png differ
diff --git a/template/gnuragistes/templates/base.html b/template/gnuragistes/templates/base.html
new file mode 100644
index 0000000..110e906
--- /dev/null
+++ b/template/gnuragistes/templates/base.html
@@ -0,0 +1,49 @@
+
+
+
+
+
+{% block pagename %}{%endblock%} | {{SITENAME}}
+
+
+
+
+
+
+
+
+
+