---
categories: network web
toc: no
title: Conventions pour le wiki Evolix
...

# Conventions de syntaxe

<http://daringfireball.net/projects/markdown/basics>

## Metadata

    ---
    categories: network web
    toc: no
    title: Haskell and Category Theory
    ...

## Syntaxe

Voir [Help#markdown]()

Commandes Shell (sans output) :

    ~~~
    $ apt-cache search foo
    # apt install foo
    ~~~

Commandes Shell (avec output) :

    ~~~
    $ dmesg
    [8044916.823878] [IPTABLES DROP] : IN=eth0 OUT= MAC=00:00:00:28:71:00:00:54:00:8f:01:00:00:00 SRC=192.0.2.1 [...]
    ~~~

Fichiers avec coloration syntaxique si disponible (voir ci-dessous) :

    ~~~{.apache}
    ServerName www.example.com
    ~~~~

    ~~~{.bash}
    #!/bin/bash
    echo toto
    ~~~~

Liens externes :

    <http://www.example.com/>
    [Lien vers Example](http://www.example.com/)

Liens internes :

    [HowtoFoo]()
    [HowtoFoo#name]()
    [#name]()

### Syntaxes Markdown

*italique* **gras** ~~barré~~  H~2~O m^2^

Pour forcer un saut de ligne :
terminer sa ligne avec deux espaces !

Pour afficher le "symbole" `/!\`, il est important d'échaper le dernier caractère : `/!\\`.

## Conventions

Une commande lancée en root sera précédée de **#** ; en utilisateur elle sera précédée de **$**.
Dans la mesure du possible, le maximum de commande devra être lancée en tant qu'utilisateur.

~~~
$ apt-cache search foo
# apt install foo
~~~

Si on montre plusieurs commandes dans un seul bloc, et qu'on veut également montrer leur sortie, il convient de sauter une ligne entre chaque commande et la fin de la sortie de la précédente.

On évitera d'avoir des lignes trop longues dans les commandes Shell ou fichiers sur le wiki, car cela devient illisible en HTML.
On mettra ainsi les commandes Shell sur plusieurs lignes si besoin, on utilisera *[...]* si nécessaire, etc.

Si l'on doit afficher une commande courte dans le paragraphe du texte, par exemple `/etc/init.d/foo restart`, on utilise les backticks « \`/etc/init.d/foo restart\` ». On peut utiliser la même chose pour les noms de fichier, tel `foo.bar`.

Si l'on doit utiliser un utilisateur quelconque, on utilisera le login **jdoe** (pour John Doe).

Si l'on doit mentionner un mot de passe, on choisira **PASSWORD** (en majuscule).

Si l'on doit mentionner un fichier quelconque, on choisira **FICHIER** (en majuscule).

Si l'on doit utiliser un terme quelconque, on privilégiera **foo** et **bar** (puis baz, qux, quux, corge, grault, garply, waldo, fred, plugh, xyzzy, thud). Ainsi, pour un chemin quelconque, on utilisera par exemple `cp /foo/FICHIER /bar/`.

Si l'on utilise des adresses IP, on utilisera des IPv4 en **192.0.2.0/24** [RFC5737](https://tools.ietf.org/html/rfc5737) et des IPv6 en **2001:db8::/32** [RFC3849](https://tools.ietf.org/html/rfc3849).

Les adresses IPv6 et les adresses MAC auront leurs caractères alphabétiques en minuscule.

Si l'on utilise des noms de domaine, on utilisera **example.com** [RFC2606](https://tools.ietf.org/html/rfc2606) notamment pour les emails, URLs ou serveurs à atteindre.

Pour relancer un service : `/etc/init.d/foo restart` OU `systemctl restart foo`. (??)

Pour installer un paquet sous Debian, on utilise la commande `apt` → `apt install foo`.

Par défaut on considère que l'on écrit de la documentation pour la version *stable* d'OpenBSD ou pour *Debian 9*. Des remarques **obligatoires** doivent être faites pour *Debian 8*. Des remarques éventuelles peuvent être faites pour les version précédentes (Debian 7, etc). Ces remarques devraient être mises sous forme de "notes" du type :

> *Note* : Pour Debian 7 et 8, on peut faire :
>
> ~~~
> # aptitude install foo
> ~~~

## Coloration syntaxique

~~~
$ ./.cabal/bin/pandoc -v
pandoc 1.17.2
Compiled with texmath 0.8.6.5, highlighting-kate 0.6.2.1.
Syntax highlighting is supported for the following languages:
    abc, actionscript, ada, agda, apache, asn1, asp, awk, bash, bibtex, boo, c,
    changelog, clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css,
    curry, d, diff, djangotemplate, dockerfile, dot, doxygen, doxygenlua, dtd,
    eiffel, elixir, email, erlang, fasm, fortran, fsharp, gcc, glsl,
    gnuassembler, go, hamlet, haskell, haxe, html, idris, ini, isocpp, java,
    javadoc, javascript, json, jsp, julia, kotlin, latex, lex, lilypond,
    literatecurry, literatehaskell, llvm, lua, m4, makefile, mandoc, markdown,
    mathematica, matlab, maxima, mediawiki, metafont, mips, modelines, modula2,
    modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml, octave,
    opencl, pascal, perl, php, pike, postscript, prolog, pure, python, r,
    relaxng, relaxngcompact, rest, rhtml, roff, ruby, rust, scala, scheme, sci,
    sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, tcsh, texinfo, verilog, vhdl,
    xml, xorg, xslt, xul, yacc, yaml, zsh
~~~
