Commit c0f7722a authored by BorisPAING's avatar BorisPAING

Responsiveness

parent c1c4b8bf
Lisez-moi (s'il-vous-plaît)
===
## Ressources CSS utiles
* [Flexbox : comprendre le dimensionnement des images](https://codepen.io/dudleystorey/pen/pejpYW)
#!/usr/bin/env python
# -*- coding: utf-8 -*- #
from __future__ import unicode_literals
# ----------------- <CONTENT> -----------------
# AUTHOR = u'Duniter'
SITENAME = u'Duniter'
CC_LICENSE = "CC-BY-SA"
FAVICON = 'images/duniter-logo.png'
SITELOGO = 'images/duniter-logo.png'
THUMBNAIL_DEFAULT = '/images/duniter-logo-bw.png'
TIMEZONE = 'Europe/Paris'
SITELOGO_SIZE = 36
# BANNER = 'images/duniter-logo.png'
# BANNER_SUBTITLE = 'This is my subtitle'
# ----------------- </CONTENT> -----------------
# ----------------- <THEME> -----------------
THEMES_PATH = "pelican-themes/"
THEME = THEMES_PATH + "pelican-bootstrap3"
CHILD_THEME_NAME = "pelican-bootstrap3-duniter"
CHILD_THEME = THEMES_PATH + CHILD_THEME_NAME + "/"
THEME_TEMPLATES_OVERRIDES = [
CHILD_THEME + "templates",
'pelican-plugins/pelican-redirect/templates'
]
THEME_STATIC_PATHS = [
'./static',
'../' + CHILD_THEME_NAME + '/static'
]
#PATH_METADATA = 'pages/(?P<path>.*)\..*'
# EXTRA_TEMPLATES_PATHS = ['pelican-plugins/pelican-redirect/templates']
# ----------------- </THEME> -----------------
# ----------------- <URLS> -----------------
# RELATIVE_URLS = True # Uncomment this line if you want document-relative URLs when developing
SEARCH_URL = SITEURL + '/search.html'
SLUGIFY_SOURCE = 'basename' # 'title'
ARTICLE_TRANSLATION_ID = 'slug'
PAGE_TRANSLATION_ID = 'slug'
INDEX_SLUG = 'blog'
PATH = 'content'
ARTICLE_PATHS = ['articles']
PAGE_PATHS = ['pages']
STATIC_PATHS = ['images', 'videos', 'content', 'files', 'files/licence_g1.rst']
ARTICLE_EXCLUDES = ['files']
READERS = {'html': None} # Pour exclure les fichiers .html de la copie depuis les dossiers pages/ et articles/
INTRASITE_LINK_REGEX = '[{|](?P<what>.*?)[|}]'
FILENAME_METADATA = r'(?P<file_name>.*)'
PAGE_SAVE_AS = '{slug}.html'
PAGE_LANG_SAVE_AS = '{slug}-{lang}.html'
ARTICLE_SAVE_AS = 'blog/{category}/{slug}.html'
ARTICLE_LANG_SAVE_AS = 'blog/{category}/{slug}-{lang}.html'
INDEX_SAVE_AS = 'blog.html' # Defines to what path we want index.html template to be output
CATEGORIES_SAVE_AS = INDEX_SLUG + '/categories.html'
CATEGORY_SAVE_AS = INDEX_SLUG + '/{slug}.html'
TAGS_SAVE_AS = INDEX_SLUG + '/etiquettes.html'
TAG_SAVE_AS = INDEX_SLUG + '/etiquettes/{slug}.html'
REDIRECT_SAVE_AS = PAGE_SAVE_AS # Handled by a plugin
STATIC_SAVE_AS = '{path}'
if PRETTY_URLS :
PAGE_URL = '{slug}/'
PAGE_LANG_URL = '{slug}-{lang}/'
ARTICLE_URL = 'blog/{category}/{slug}/'
ARTICLE_LANG_URL = 'blog/{category}/{slug}-{lang}/'
CATEGORIES_URL = INDEX_SLUG + '/categories/'
CATEGORY_URL = INDEX_SLUG + '/{slug}/'
TAGS_URL = INDEX_SLUG + '/etiquettes/'
TAG_URL = INDEX_SLUG + '/etiquettes/{slug}/'
else : # For maximum compatibility (e.g. Apache servers without mod_rewrite)
PAGE_URL = '{slug}.html'
PAGE_LANG_URL = '{slug}-{lang}.html'
ARTICLE_URL = 'blog/{category}/{slug}.html'
ARTICLE_LANG_URL = 'blog/{category}/{slug}-{lang}.html'
CATEGORIES_URL = INDEX_SLUG + '/categories.html'
CATEGORY_URL = INDEX_SLUG + '/{slug}.html'
TAGS_URL = INDEX_SLUG + '/etiquettes.html'
TAG_URL = INDEX_SLUG + '/etiquettes/{slug}.html'
INDEX_URL = PAGE_URL.replace('{slug}', INDEX_SLUG)
# Documentation :
# https://github.com/getpelican/pelican-plugins/tree/master/tag_cloud
TAG_CLOUD_SORTING = 'random'
BOOTSTRAP_THEME = 'readable'
PRIMARY_NAV = [
# (label, slug)
('<span class="optional">Des</span> monnaies libres', 'monnaies-libres'),
('<span class="optional">La </span>Ğ1', 'monnaie-libre-g1'),
('Toile de Confiance', 'toile-de-confiance'),
('Contribuer<span class="optional"> au code</span>', 'contribuer'),
('Forger<span class="optional"> des blocs</span>', 'forger-des-blocs'),
('Actualités', INDEX_URL),
]
SECONDARY_NAV = [
# (label, slug)
( 'Licence', 'licences-du-site' ),
( 'Qui sommes-nous ?', 'qui-sommes-nous' ),
( 'Contact', 'contact' ),
( 'Financements', 'financements' )
]
SYNDICATION_LINKS = [
# (CSS class, text/label, URL)
( 'diaspora', 'Diaspora', 'https://framasphere.org/people/1949ee70f6bc0134e6b32a0000053625' ),
( 'mastodon', 'Mastodon', 'https://mastodon.xyz/@duniter' ),
( 'rss', 'RSS', SITEURL + '/feeds/all.atom.xml' ),
]
# ----------------- </URLS> -----------------
# ----------------- <I18N> -----------------
I18N_SUBSITES = {
}
AVAILABLE_LANGS = ['fr', 'en']
DEFAULT_LANG = u'fr'
# ----------------- </I18N> -----------------
# ----------------- <PLUGINS> -----------------
PLUGIN_PATHS = ['pelican-plugins/', 'custom-plugins/']
PLUGINS = [
'i18n_subsites', 'tipue_search', 'plantuml', 'assets', 'tag_cloud',
'pelican-page-hierarchy-duniter']
ASSET_SOURCE_PATHS = [
"../" + CHILD_THEME_NAME + '/static' + '/less'
]
DIRECT_TEMPLATES = ['index', 'categories', 'authors', 'archives', 'search', 'tags']
MARKDOWN = {
'extension_configs': {
'markdown.extensions.codehilite': { 'css_class': 'highlight' },
'markdown.extensions.fenced_code': {},
'markdown.extensions.extra': {},
# Doc :
# https://python-markdown.github.io/extensions/toc/
'markdown.extensions.toc': {
'toc_depth' : '2-5',
'title' : 'Table des matières',
'permalink': True
},
#'plantuml.plantuml_md': {'siteurl': '/fr'} DOES NOT WORK, NEED A PATCH ON THE PLUGIN PLANTUML, USE SITEURL BY DEFAULT
}
}
PYGMENTS_STYLE = 'default'
JINJA_ENVIRONMENT = {
'extensions': ['jinja2.ext.i18n']
}
# ----------------- </PLUGINS> -----------------
# ----------------- <DISPLAY> -----------------
BOOTSTRAP_FLUID = False
SHOW_ARTICLE_AUTHOR = True
SHOW_ARTICLE_AUTHOR = True
SHOW_ARTICLE_CATEGORY = False
SHOW_DATE_MODIFIED = True
DISPLAY_ARTICLE_INFO_ON_INDEX = False
DISPLAY_CATEGORY_IN_BREADCRUMBS = True
DISPLAY_CATEGORIES_ON_MENU = False
DISPLAY_PAGES_ON_MENU = False
DISPLAY_BREADCRUMBS = True
HIDE_SIDEBAR = True
DISPLAY_TAGS_ON_SIDEBAR = True
DISPLAY_CATEGORIES_ON_SIDEBAR = True
DISPLAY_RECENT_POSTS_ON_SIDEBAR = True
RECENT_POST_COUNT = 3
DEFAULT_PAGINATION = 5
#PAGINATED_TEMPLATES = {'index': 5}
PAGES_SORT_ATTRIBUTE = 'order'
# ----------------- </DISPLAY> -----------------
# ----------------- <GENERATION> -----------------
import logging
LOG_FILTER = [
(logging.WARN, 'Empty alt attribute for image %s in %s'),
(logging.WARN, '{filename} used for linking to static content %s in %s. Use {static} instead'),
(logging.WARN, "Meta tag in file %s does not have a 'name' attribute, skipping. Attributes: %s"),
# (logging.WARN, "Unable to find '%s', skipping url replacement."),
]
# ----------------- </GENERATION> -----------------
\ No newline at end of file
......@@ -5,6 +5,7 @@ Tags: release
Slug: duniter-version-1.7
Authors: cgeek
Thumbnail: /images/box.svg
Summary: La version 1.7 de Duniter vient de sortir. Elle apporte son lot de nouveautés, comme la possibilité de renouveller les certifications par anticipation, mais aussi une synchro plus rapide, et des performances accrues.
La version 1.7 de Duniter est désormais [disponible au téléchargement](https://git.duniter.org/nodes/typescript/duniter/wikis/Releases) !
......
body {
padding-top: 85px;
}
#social .list-group-item {
padding: 10px 10px !important;
}
.navbar-search {
margin-top: 10px;
}
#tipue_search_input
{
float: none;
color: #333;
padding: 12px 12px 12px 40px;
width: 100%;
box-sizing: border-box;
border: 1px solid #e2e2e2;
border-radius: 0;
background-color: #fff;
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAABN0lEQVQoU5WS23HCMBBFke0CnA7SAcmvH4NcAaQCSAWQCoAKAhWEDuIOoowfv6EE0kH49yP3eixGaPwBmtFovbvn7mplMepXFEUS5lIIMaOrbdsjjtTzvL1S6k/n6VPQiON4geOjd54BnSAw1gKAExsWrISkLyQRmOV5rghIKf26rncw5/Ar+BOzqkC1FI4pgomGzAQIKwhPIPJcliXb7xZBMO0voEf7HvwOw3DlOM570zRvRVGwgyvwG6AcAiHMYX1CfIuczQVEK0cOwnXdh6HpIb5DfGlfhcPZILCG0iHLslezahAETxD8GbqK4PSqquIAxpwewBT2iYPFXmD78Kdo88UU7d6xhwlMzCArwcdJTu2OOlAvtoZEvqsPH9+OHfAHOeCYm/AVaIrYtg3fDNqV7wINePQP5CumvCOCjRYAAAAASUVORK5CYII=');
background-repeat: no-repeat;
background-position: 15px center;
}
.navbar-right
{
display: none;
}
.search-query {
border-radius: 4px !important;
}
.download {
text-align: center;
padding-bottom: 20px;
border-bottom: 1px solid #eee;
}
.download h3 {
margin-top: 0px;
}
.download .btn {
margin: 5px;
}
.download a {
width: 230px;
}
.currency_network {
font-weight: bold;
/*text-decoration: underline;*/
}
.entry-content p a, .entry-content ul a, .summary a {
color: #4582ec !important;
}
.entry-content p a:hover, .entry-content ul a:hover, .summary a:hover {
color: #134fb8;
}
blockquote {
background-color: #f7f7f7;
border-left: 5px solid #bad3ff;
font-size: 16px;
}
@media (max-width:480px) {
.thumbnail {
margin-left: 0;
margin-top: 0;
margin-bottom: 0;
margin-right: 10px;
padding: 0;
border: none;
display: inline;
float: left;
}
.thumbnail img {
margin-top: 2px;
width: 50px;
}
article > h2, article > .summary {
margin-left: 0;
}
}
@media (min-width:480px) {
.thumbnail {
margin: 0;
padding: 0;
border: none;
display: inline;
float: left;
}
.thumbnail img {
width: 125px;
}
article > h2, article > .summary {
margin-left: 160px;
}
}
.summary {
min-height: 50px;
}
.summary h3, .summary h2 {
font-size: 20px;
margin-left: 0;
}
#content img {
/*border: 1px dashed grey;*/
}
#content .thumbnail {
float: right;
}
#content .thumbnail img {
height: 50px;
width: auto;
}
img.credits {
width: 50px;
}
.highlight pre {
border: none;
}
#sidebar #github {
margin-left: 3px;
margin-right: 3px;
padding-left: 3px;
padding-right: 3px;
background-color: white;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
#github h5 {
margin: 0;
}
#github a {
color: white;
font-weight: bold;
width: 100%;
font-size: 14px;
}
#github .list-group-item {
text-align: center;
padding-top: 0px;
padding-left: 5px;
padding-right: 5px;
}
#sidebar section > ul {
margin-bottom: 0px;
}
#licence_g1 {
font-size: 42px;
color: #4582ec;
}
.dashed {
border: 1px dashed gray;
}
@media (max-width:992px) {
.navbar-header a {
/*padding-right: 0 !important;*/
}
.navbar-header img {
margin-right: 0 !important;
}
#siteName {
display: none;
}
.navbar-collapse li {
/*max-width: 100px;*/
}
.navbar-collapse li a {
margin-left: 0;
margin-right: 0;
}
.nav.navbar-nav {
width: 90%;
}
}
.entry-content a {
color: #4582ec;
}
.entry-content a:hover {
color: #134fb8;
}
.icon img {
width: 20px;
margin-right: 3px;
}
img.screenshot {
padding: 30px;
}
.flag-lang {
margin-right: 10px;
width: 45px;
}
\ No newline at end of file
......@@ -60,3 +60,7 @@ Ils ne font pas le travail d'un nœud, mais réalisent des opérations sur la bl
## Contribuer au site duniter.org
* [Améliorer le site]({filename}contribuer/ameliorer-le-site.md)
## Financement
* [Décisions des affectations des dons aux différents développeurs]({filename}financements.md)
\ No newline at end of file
......@@ -41,4 +41,4 @@ Instructions sur la page [Wiki > Rapporter un bug]({filename}contribuer/rapporte
Si vous disposez de quelques Ğ1, vous pouvez **[faire un don]({filename}financements.md)** aux développeurs.
Et si vous n'en avez pas, vous pouvez aussi [en obtenir]({filename}obtenir-des-g1.md).
Et si vous n'en avez pas, vous pouvez aussi [en obtenir]({filename}monnaie-libre-g1/obtenir-des-g1.md).
Title: FAQ
Order: 9
Date: 2017-07-07
Authors: cgeek, inso, Ğaluel
Slug: faq
[TOC]
# Portefeuilles et identités
#### Comment recevoir de la monnaie ?
> **Pour recevoir de la monnaie, vous avez besoin de générer votre clé privée.**. Cette clé privée est associée à une clé publique. En partageant cette clé publique, vous pouvez recevoir de la monnaie. La clé privée peut-être générée par différente méthode :
> - En mémorisant une clé secrète et un mot de passe. Cette clé secrète et ce mot de passe, associés, vont générer une clé privée. Pour être utilisée, il faut connaître le couple clé secrète/mot de passe.
> - En générant dans un fichier une clé privée aléatoire. Pour être utilisée, il faut être en possession du fichier de clé privée.
#### Qu'est-ce que la création d'un compte membre ?
> **La création d'un compte membre est l'association entre une clé publique et un UID (Pseudonyme du compte).**
Lorsqu'il créé un compte membre, l'utilisateur déclare au réseau de la monnaie *à dater d'aujourd'hui, cette clé publique est dorénavant associée à cette identité*. Un compte membre est obligatoirement unique par individu.
#### Qu'est-ce que la révocation d'un compte membre ?
> **La révocation d'un compte membre consiste à invalider une identité.**
Lorsqu'il révoque un compte membre, l'utilisateur déclare au réseau de la monnaie *à dater d'aujourd'hui, l'identité créée à telle date antérieure n'est plus valide*. L'identité est invalide mais la monnaie présente sur la clé associée est toujours valide ! La révocation empêchera :
> - de certifier l'identité révoquée
> - de demander une adhésion pour l'identité révoquée
> Mais la révocation n'impact pas l'envoi et la réception de monnaie sur la clé associée à l'identité révoquée.
#### Pourquoi révoquer un compte membre, qu'il soit en cours d'adhésion ou déja membre ?
> **En révoquant un compte membre, vous assurez à la toile : **
> - Que ce compte ne pourra pas devenir membre.
> - Que vous ne cherchez pas à créer de multiples comptes membres
> - Que les certifications sont émises vers un compte qui est en votre possession !
#### J'ai perdu mes identifiants, ou je souhaite changer mon pseudonyme ou ma clé privée, que puis-je faire ?
> **Vous devez révoquer le compte, recréer un compte et redémarrer le processus de certifications.**
Si le compte était en cours d'adhésion à la toile de confiance, vous devez aussi le révoquer. En effet, si ce compte recevait suffisamment de certifications et devenait membre, vous n'auriez alors pas le droit de créer un nouveau compte ! Vous seriez dans l'obligation d'attendre l'expiration de celui-ci.
# La toile de confiance
## Les certifications
#### Je certifie quelqu'un, quelles conséquences ?
>** J'engage ma responsabilité vis à vis de toute la toile Ğ1**
En certifiant un nouveau membre j'assure, conformément à la licence Ğ1, l'ensemble des autres membres que je connais bien la personne certifiée, je serai donc capable le cas échéant d'effectuer des vérifications sur un double compte qui aurait été créé par cette même personne, en étant capable d'effectuer des recoupements sur les activités d'échanges économiques de la personne certifiée.
#### Pourquoi certifier quelqu'un ?
> **La certification est l'action la plus importante de la toile de confiance, c'est ce qui créé les liens de la toile de confiance**. Vous ne devez certifier quelqu'un que si vous connaissez suffisament bien cette personne ! En effet, c'est parce que chacun connait suffisamment bien les personnes qu'il/elle a certifié, que la toile peut se construire et que la confiance en l'unicité des personnes apparait par récursivité.
#### Quels sont les impacts techniques lorsque je certifie un nouvel entrant ?
> **Certifier des nouveaux venus va tendre la toile.**
La conséquence est qu'en ne certifiant que des nouveaux venus, la toile peut devenir tellement tendue qu'elle ne permet plus à personne d'y rentrer !
#### Quels sont les impacts techniques lorsque je certifie un membre existant ?
> **Certifier des membres va détendre la toile tout en consolidant les liens qui la constitue**
La toile est alors consolidée. Les chemins entre membres qui la constituent sont doublement renforcés. Elle se détend et peut alors accueillir de nouveaux membres.
#### Existe-t-il des règles de courtoisie entre membres ?
> **Par courtoisie, lorsque l'on rejoint la toile de confiance, on peut contre-certifier ses certifieurs en priorité, si et seulement si on les connaît tout aussi bien**
On aide ainsi nos certifieurs à ne pas être placés sur les bords de la toile au fur et à mesure de l'arrivée des nouveaux. En effet, une fois que vous êtes membres référent, vos certifications peuvent exclure quelqu'un de la toile si il est trop éloigné de vous !
## Les stratégies de certifications
#### Que se passe-t-il si je favorise des certifications vers l'extérieur ?
> **Ne certifier que vers l'extérieur est une bonne stratégie pour contrer les attaques sybilles**
Lorsque l'on certifie uniquement vers l'extérieur, la toile est de plus en plus tendue. La présence constante de membres à une distance de 5 d'autres membre va freiner et limiter l'arrivée de comptes sybilles en cas d'attaques. Ce procédé peut donc être utilisé par l'ensemble de la toile Ğ1 pour stopper son expansion le temps d'effectuer les vérifications nécessaires, et notamment découvrir à l'aide de leurs certifieurs les membres qui auraient effectué de fausses manoeuvres.
> Il s'agit donc aussi d'un procédé de sécurité.
## Le comportement de la toile de confiance
#### A quelle rythme évolue la toile de confiance au début de la monnaie ?
> **A ses débuts, la toile évolue au rythme des certifications internes et externes.**
Lorsque la toile arrive a sa dimension maximum, certifier vers l'intérieur va la détendre. Lorsque les utilisateurs certifient vers l'extérieur, elle va se tendre. Un peu de la même manière que la respiration des êtres vivants ! A terme, l'évolution de la toile sera plus fluide. Cette fluidité dépend du nombre de membres certifiant de manière active !
> Quelle que soit le type de certification, externe ou interne, le procédé inscrit dans la licence Ğ1 reste valide, il convient donc toujours de s'assurer que sa responsabilité est correctement engagée du fait que l'on connaisse bien la personne certifiée, et de s'assurer par tous moyens que la clé publique que l'on envisage de certifier est bien contrôlée par la personne connue.
# Théorie monétaire
#### Où est décrite la théorie monétaire derrière Duniter et la Ğ1 ?
> Duniter et la Ğ1 reposent sur la [Théorie Relative de la Monnaie (TRM)](http://trm.creationmonetaire.info/), librement disponible sur Internet.
> Cette théorie définit la notion de monnaie libre.
#### Si tout le monde crée la monnaie, y a-t-il quand même une limite ?
> Oui : la création monétaire se fait *à part égale* entre tous les individus, à la fois dans l'espace (tous les individus « maintenant ») et dans le temps (tous les individus « à venir »). Ce qui signifie que cette part est **bornée**.
> Lorsque les individus produisent de la monnaie, par exemple chaque jour vers 13h pour la monnaie Ğ1, tous les individus produisent le même montant. Ni plus, ni moins. La démonstration est donnée [dans cette vidéo](https://www.youtube.com/watch?v=0d0EKlD7q9w).
#### Si tous les individus créent perpétuellement de la monnaie, n'y aura-t-il pas d'inflation ?
> Avant toute chose, nous vous invitons à réfléchir à ce que signifie le mot « inflation », et à vous interroger sérieusement en quoi l'inflation pourrait poser un problème dans quelque monnaie que ce soit.
> En effet trop souvent le mot « inflation » est brandi sans compréhension, répété parce qu'on nous aurait enseigné : « l'inflation c'est mal ».
> Or, cette dernière proposition n'est pas forcément vraie. Interrogez-vous donc sur les cas où celle-ci est problématique, pour qui, et les cas où celle-ci ne l'est pas ou même est bénéfique et pour qui.
> Ensuite, nous vous invitons à étudier deux argumentations :
> 1. La vidéo sur la monnaie libre [« Le quantitatif et le relatif »](https://www.youtube.com/watch?v=na4ZtiSECog)
> 2. [Ce commentaire à propos de l'inflation](https://forum.duniter.org/t/flyer-monnaie-libre/2901/2)
> Puis à positionner la monnaie libre dans cette réflexion.
......@@ -28,39 +28,21 @@ Title: Forger des blocs
## Financement
* [Rémunération des calculateurs]({filename}forger-des-blocs/remuneration.md)
* [Décisions des affectations des dons aux différents développeurs]({filename}financements.md)
<section id="download">
<div>
<h2>Télécharger Duniter</h2>
<figure>
<a class="CTA" href="https://git.duniter.org/nodes/typescript/duniter/tags/">
<span>
Duniter
</span>
<br>
<strong>
Réseau Ğ1-TEST
</strong> (test)
<p>
<a class="CTA" href="https://git.duniter.org/nodes/typescript/duniter/tags/2019.0407.1508">
Duniter 2019.0407.1508
Réseau Ğ1-TEST (test)
</a>
</figure>
<figure>
<a class="CTA" href="https://git.duniter.org/nodes/typescript/duniter/tags/v1.7.19">
<span>
Duniter v1.7.19
</span>
<br />