diff options
Diffstat (limited to 'content')
-rw-r--r-- | content/Informatique/2012-02-18-elinks.rst | 47 | ||||
-rw-r--r-- | content/Informatique/2012-11-09-fonctionnel.rst | 190 | ||||
-rw-r--r-- | content/Informatique/2013-05-23-ocamlfind_en.rst_ | 63 | ||||
-rw-r--r-- | content/Informatique/2013-05-23-ocamlfind_fr.rst | 79 | ||||
-rw-r--r-- | content/Informatique/2013-09-13-ocaml_ppx.rst | 97 | ||||
-rwxr-xr-x | content/extras/custom.css | 185 | ||||
-rw-r--r-- | content/extras/htaccess | 22 | ||||
-rw-r--r-- | content/extras/robots.txt | 2 | ||||
-rwxr-xr-x | content/pages/404.rst | 10 | ||||
-rwxr-xr-x | content/pages/graph-editor.html | 1 | ||||
-rwxr-xr-x | content/pages/script.it/script.rst | 2 |
11 files changed, 220 insertions, 478 deletions
diff --git a/content/Informatique/2012-02-18-elinks.rst b/content/Informatique/2012-02-18-elinks.rst deleted file mode 100644 index bac91ba..0000000 --- a/content/Informatique/2012-02-18-elinks.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. -*- rst -*- -.. -*- coding: utf-8 -*- - -Scripter elinks -############### - -:date: 2012-02-18 -:tags: Libre - -elinks_ est un navigateur web, destiné à être utilisé en console. Il s'agit -pour moi d'un très bon navigateur secondaire, en complément de firefox, qui à -l'avantage de permettre une navigation légère, sans effets de javascript, -publicités, idéale pour lire l'actualité, un peu moins pour faire une recherche -sur un sujet. - -La semaine dernière, j'ai envoyé un message_ sur la mailing list du projet pour -indiquer que je souhaitai entreprendre quelques modifications dans le code dans -le but de le rendre davantage modulaire. Il est nativement scriptable dans -différents langages (lua, python, perl...) mais les possbilités de scripts -restent très limitées et ne permettent pas de changer grand chose au -comportement du navigateur. Quand on a pri l'habitude de pouvoir configurer -ses applications comme on le souhaite, cela devient difficile de ne pas pouvoir -le faire. - -J'ai donc choisi de me pencher davantage sur le langage lua pour mettre en -place les modifications voulues. J'ai déjà une expérience du lua comme scripts -côté client, pour l'instant jamais du côté de l'API C. Après avoir lutté un -petit peu, j'ai fini par comprendre et suis aujourd'hui en train de mettre les -objets qui m'intéressent. - -Le but est de permettre de scripter complètement la navigation : aujourd'hui, -les seules interractions possibles permettent de modifier l'URL au moment où -celle-ci est entrée, mais aucun accès au document n'est donné : impossible de -récupérer les URLs, impossible de sélectionner un lien dans la page, ou de -naviguer dans celle-ci. C'est tout cela que je souhaite mettre en place, en -proposant une API orientée objet qui sera modulable et réutilisable par la -suite. - -Pour l'instant, les modifications ne sont pas encore visibles, je fais le -commit sur mon propre serveur git, mais je rendrai public mon projet dès que -j'aurai obtenu un résultat intéressant : je n'attendrai pas d'avoir fini pour -tout publier; soyez patient ! - -.. _elinks: http://elinks.or.cz/index.html -.. _message: http://linuxfromscratch.org/pipermail/elinks-dev/2012-February/002049.html - - diff --git a/content/Informatique/2012-11-09-fonctionnel.rst b/content/Informatique/2012-11-09-fonctionnel.rst deleted file mode 100644 index 06d75d0..0000000 --- a/content/Informatique/2012-11-09-fonctionnel.rst +++ /dev/null @@ -1,190 +0,0 @@ - -Programmation fonctionnelle -########################### - -:date: 2012-11-09 -:tags: Programmation - -Dans cet article, je vais essayer de présenter différents cas de programmation -fonctionnelle en essayant de partir d'un cas pratique pour présenter les -difficultés et solutions disponibles. - -Je vais présenter ici des exemples dans le langage python, par ce qu'il s'agit -d'un langage simple, pouvant être utilisé de manière fonctionnelle (dans une -certaine limite). Je me contente d'un python `basique` et ne vais pas chercher -entrer dans des syntaxes spécifiques, le but étant ici de servir de support, et -non pas de présenter le langage. - -Un besoin -========= - -Imaginons la situation suivante : une application reçoit des données d'un -client et doit les traiter. Ces données arrivent dans des fichiers textes, -chaque ligne du fichier correspond à une donnée à traiter. - -Un programme -============ - -Commençons le programme, pour lire le fichier commençons par le localiser : - -.. code-block:: python - - def get_file(nom): - chemin = os.path.join("repertoire", nom) - return open(chemin) - -Cette fonction est simple : elle prend en argument un nom de fichier, et -retourne le fichier correspondant. On peut également dire qu'elle effectue la -transformation suivante : - -.. code-block:: ocaml - - get_file: String -> File - -Cette notation indique que le type de la fonction est le suivant : elle prend -un string en entrée, et retourne un file en sortie. Nous l'utiliserons -régulièrement dans cet article. - -Dans notre cas, nous n'avons pas un fichier a traiter, mais une série de -fichiers. Nous allons donc devoir appeler la fonction sur tous nos nom de -fichiers. La première solution est la solution itérative, à travers une boucle -: - -.. code-block:: python - - def transforme(noms): - fichiers = [] - for nom in noms - fichiers.append(get_file(nom)) - return fichiers - -À la fin de l'exécution de la boucle, la liste `fichiers` contient la liste des -fichiers construits à partir de la liste `noms`. - -C'est une opération très fréquente et bien qu'elle soit très courte. Essayons -de réfléchir un peu à ce que nous venons de faire en terme de type : notre but -est de transformer une liste de String en liste de File de la manière suivante -: - -.. code-block:: ocaml - - transforme: List[String] -> List[File] - -Si l'on généralise, on peut essayer de créer une fonction qui aurait le schéma -suivant : - -.. code-block:: ocaml - - transforme: List[A] -> List[B] - -Cette fonction a par contre besoin d'une transformation à appliquer pour -transformer A en B, dans notre cas, cette transformation a déjà été créée plus -haut ! - -Notre schéma devient donc le suivant : - -.. code-block:: ocaml - - transforme: (A -> B) -> List[A] -> List[B] - -Récrivons donc notre fonction transforme de cette manière: - -.. code-block:: python - - def transforme(func, source): - results = [] - for nom in source - results.append(func(nom)) - return results - - fichiers = transforme(get_file, noms) - -Et voilà ! Nous avons maintenant notre fonction générique, destinée à changer -le contenu de notre liste. Qu'est ce que cela apporte par rapport à la version -impérative que nous avons écrit tout à l'heure ? En fait pas grand chose. Sauf -que la fonction `transforme` est présente nativement dans python. Elle -s'appelle en fait `map`, et effectue le même travail. - -Nous aurions donc tout aussi bien pu écrire : - -.. code-block:: python - - fichiers = map(get_file, noms) - -Une réflexion -============= - -Pourquoi avoir écrit tout ça ? Par ce que semblant de rien, nous avons changé -notre manière de concevoir le programme : au lieu d'écrire une suite -d'instructions qui s'exécutent séquentiellement, nous venons d'appliquer des -transformations dans un contexte : la liste des noms de fichiers est notre -contexte de base, sur lequel nous appliquons des transformations pour créer un -autre contexte. - -Ces transformations ne modifient pas notre contexte initial, et par la suite -les transformations que nous continueront d'appliquer ne modifieront rien non -plus de notre environnement. Dans cet esprit, l'ensemble du programme peut être -perçu comme un grande transformation qui s'applique sur un point d'entrée -initial. - -Une théorie -=========== - -La fonction `map` que nous venons de présenter ici, s'inscrit en fait dans un -cadre de fonctions plus vaste : les foncteurs_. Il s'agit d'une notion -mathématique que l'on retrouve appliquée en informatique. - -.. _foncteurs: http://fr.wikipedia.org/wiki/Foncteur - -Comme vu précédemment, un objet foncteur F est un objet ayant la signature -suivante : - -.. code-block:: ocaml - - map: (A -> B) -> F[A] -> F[B] - -Le foncteur a deux contraintes, qui sont plutôt intuitives: - -identité --------- - -Soit la fonction `id` défini comme suit: - -.. code-block:: python - - def id(x): - return x - -alors on a l'égalité suivante : - -.. code-block:: python - - map(id, fichiers) == fichiers - -Autrement dit, le foncteur ne doit pas modifier la structure de la donnée. On -peut essayer de repenser la fonction `transforme` écrite plus haut pour briser -cette règle, je laisse au lecteur le soin de réfléchir à cette question. - -composition ------------ - -La deuxième contrainte est celle de la composition : - -.. code-block:: python - - map(f(g), source) = map(f, map(g, source)) - -C'est à dire qu'il est possible de composer les fonctions les entre elles : -c'est encore heureux, car cela permet de chaîner les traitements entre eux… - -Une conclusion -============== - -Notre contexte est ici une liste, mais nous allons voir par la suite qu'il en -existe beaucoup d'autres, ce qui va nous faciliter la vie… Cela va venir dans -les articles qui suivent. - -Une fois les deux contraintes validées, nous allons pouvoir construire de -nouveaux types basés sur ce foncteur. Et derrière la solution informatique mise -en place, je vais essayer de présenter les concepts mathématiques qui sont -derrière. diff --git a/content/Informatique/2013-05-23-ocamlfind_en.rst_ b/content/Informatique/2013-05-23-ocamlfind_en.rst_ deleted file mode 100644 index bebab10..0000000 --- a/content/Informatique/2013-05-23-ocamlfind_en.rst_ +++ /dev/null @@ -1,63 +0,0 @@ -.. -*- rst -*- -.. -*- coding: utf-8 -*- - -============================ -A local repository for ocaml -============================ - -:date: 2013-05-23 -:tags: ocaml -:summary: |summary| -:logo: /images/ocaml/camel.jpg -:slug: un-depot-local-pour-ocaml -:lang: en - -.. figure:: {static}/images/ocaml/camel_medium.jpg - :figwidth: 150 - :figclass: floatleft - :alt: Pavement - - Image : `@Doug88888`_ (creativecommons_) - -.. _@Doug88888: http://www.flickr.com/photos/doug88888/3458057235/ -.. _creativecommons: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.fr - -|summary| - - -.. |summary| replace:: - Today, ocaml is obsolete in the debian packages : the most of the - librairies are still linked with Ocaml3 althought Ocaml4 is out since - almost a year. When we need to develop with Ocaml4, we have to recompile - all the dependencies, but this implies to install them for the whole - system. But we can use a local repository with some findlib configuration. - -Findlib is now a required tool for an Ocaml project compilation. Each -application uses now findlib for searching the dependencies, and the linking -phase. - -We first need to create a local configuration in wich we write where to find -the packages : - - -.. code-block:: bash - - destdir="/home/chimrod/ocaml/packages/" - path="/home/chimrod/ocaml/packages/:/usr/local/lib/ocaml/4.00.1:/usr/lib/ocaml:/usr/lib/ocaml/METAS" - -:destdir: is the path where we want to install the newly compiled packages. -:path: is the path list where to find the packages. - -Of course, you need to replace `/home/chimrod/` by your own installation path. -It must be an absolute path. - -The path to this file can be saved with the shell environnement ; we just need -to reference it in the `.bashrc` file : - -.. code-block:: bash - - export OCAMLFIND_CONF=/home/chimrod/ocaml/ocamlfind.conf - -That's now : each new package will now be installed in your packages directory, -and the compilation will also look for this path for the required -dependencies : you do not have to install the packages as root anymore. diff --git a/content/Informatique/2013-05-23-ocamlfind_fr.rst b/content/Informatique/2013-05-23-ocamlfind_fr.rst deleted file mode 100644 index 254d7fe..0000000 --- a/content/Informatique/2013-05-23-ocamlfind_fr.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. -*- rst -*-
-.. -*- coding: utf-8 -*-
-
-=========================
-Un dépôt local pour ocaml
-=========================
-
-:date: 2013-05-23
-:tags: ocaml
-:summary: |summary|
-:logo: /images/ocaml/camel.jpg
-:slug: un-depot-local-pour-ocaml
-:lang: fr
-
-.. default-role:: literal
-
-.. figure:: {static}/images/ocaml/camel_medium.jpg
- :figwidth: 150
- :figclass: floatleft
- :alt: Pavement
-
- Image : `@Doug88888`_ (creativecommons_)
-
-.. _@Doug88888: http://www.flickr.com/photos/doug88888/3458057235/
-.. _creativecommons: http://creativecommons.org/licenses/by-nc-sa/2.0/deed.fr
-
-|summary|
-
-
-.. |summary| replace::
- Ocaml n'est pas à jour dans debian : l'ensemble des librairies sont encore
- restées sur la version 3, alors qu'Ocaml4 est sorti depuis près d'un an. Il
- peut être nécessaire de développer en utilisant ocaml4, mais on est alors
- obligé de compiler soit même les dépendances, et les installer pour
- l'ensemble du système, ce qui n'est pas souhaité, ni toujours possible
- (problème de droits). Cette petite recette permet de se créer un dépôt
- local en utilisant findlib.
-
-Findlib est devenu de facto une brique essentielle pour la gestion des
-librairies et les dépendances d'un projet. Aujourd'hui toute compilation
-utilise findlib pour rechercher les dépendances et faciliter la chaîne de
-compilation. La documentation_ du projet est assez dense, mais heureusement, il
-est très configurable.
-
-.. _documentation: http://projects.camlcity.org/projects/dl/findlib-1.3.3/doc/guide-html/index.html
-
-Nous allons commencer par nous créer un fichier de configuration local qui va
-indiquer où stocker nos librairies :
-
-.. code-block:: bash
-
- destdir="/home/chimrod/ocaml/packages/"
- path="/home/chimrod/ocaml/packages/:/usr/local/lib/ocaml/4.00.1:/usr/lib/ocaml:/usr/lib/ocaml/METAS"
-
-:destdir: correspond à l'emplacement d'installation des nouvelles librairies.
-:path: est l'ensemble des répertoires où chercher les dépendances. Ici
- nous déclarons tout d'abord notre dépôt local avant de référencer
- les répertoires système.
-
-Il faut bien sûr remplacer `/home/chimrod/` par le chemin sur votre
-installation : celui-ci doit être écrit en absolu pour le bon fonctionnement de
-findlib.
-
-Le répertoire de configuration peut être exporté via une variable shell, ce qui
-va nous faciliter la vie ; il ne nous reste plus qu'à référencer ce fichier de
-configuration dans notre environnement :
-
-.. code-block:: bash
-
- export OCAMLFIND_CONF=/home/chimrod/ocaml/ocamlfind.conf
-
-Là encore, remplacer le chemin par celui qui est le votre sur votre système.
-
-On peut mettre cette chaîne dans le fichier `.bashrc` pour que le paramétrage
-soit pris en compte dans chaque session ouverte dans le terminal.
-
-Et le tour est joué : toutes nos nouvelles dépendances vont s'installer
-directement dans notre répertoire personnel, et nous n'avons plus besoin
-d'aller poluer le système avec nos compilation.
diff --git a/content/Informatique/2013-09-13-ocaml_ppx.rst b/content/Informatique/2013-09-13-ocaml_ppx.rst deleted file mode 100644 index ef0b9c2..0000000 --- a/content/Informatique/2013-09-13-ocaml_ppx.rst +++ /dev/null @@ -1,97 +0,0 @@ -.. -*- mode: rst -*- -.. -*- coding: utf-8 -*- - -=========== -ocamlc -ppx -=========== - -:date: 2013-09-13 -:tags: ocaml, Programmation -:summary: |summary| -:logo: /images/ocaml/recursion_75.jpg - -.. figure:: {static}/images/ocaml/recursion.jpg - :figwidth: 180 - :figclass: floatright - :alt: Recursivité - - Image : `Gadl`_ (creativecommons_) - -.. _Gadl: http://www.flickr.com/photos/gadl/279433682/ -.. _creativecommons: http://creativecommons.org/licenses/by-sa/2.0/deed.fr - -|summary| - -.. |summary| replace:: - Les langages homoïconiques ont quelque chose de fascinant : pouvoir - représenter le programme sous la forme d'une donnée capable d'être traitée - par le programme nous entraîne dans un jeu de mirroirs qui se réfléchissent - eux-même, et me donne un peu le vertige… La nouvelle version d'OCaml - présente une option de préprocessing qui s'en rapproche. - -Selon `wikipédia`_ un langage homoïconique à la particularité de pouvoir être -représenté comme une donnée du programme. Cela permet de transformer le langage -(lui donner de nouvelles fonctionalités) en utilisant un autre programme fait -dans le même langage. Un programme lisp peut ainsi se modifier durant son -exécution, de la même manière, un fichier xsl peut s'appliquer sur un autre -fichier xsl (puisque xslt_ est décrit sous la forme de fichiers xml)… - -.. _wikipédia: https://fr.wikipedia.org/wiki/Homoiconicit%C3%A9 -.. _xslt: https://fr.wikipedia.org/wiki/Extended_stylesheet_language_transformations - -OCaml 4.01 est sorti ! -====================== - -OCaml vient de sortir en version 4.01, et présente dans ses nouveautés, une -nouvelle option qui s'active à la compilation : - - - :-ppx command: After parsing, pipe the abstract syntax tree through the - preprocessor command. The format of the input and ouput - of the preprocessor are not yet documented. - -Qu'est-ce que cela signifie ? Qu'après avoir interprété le programme source et -construit l'arbre syntaxique du langage, le compilateur appelle un autre -programme en lui transmettant cette représentation en paramètre. À cette étape, -le compilateur a juste vérifié que la syntaxe était `valide`, mais il n'a pas -encore vérifié le programme. - -Le programme appellé peut alors modifier la représentation du code source, et -**doit** donner en retour un programme OCaml valide (si l'on veut que le code -compile…). Cela permet d'étendre la syntaxe du langage en se basant sur des -éléments de syntaxe valides pour mettre en place un `langage dédié`_ (par -exemple). Est-ce que cela fait d'OCaml un langage homoïconique ? Non, car cela -n'est prévu pour être le cœur d'OCaml, mais cela lui donne un aspect -homoïconique et de nouvelles perspectives dans l'évolution du langage. - -Le principal avantage vient du fait que le langage OCaml est TRÈS fortement -typé, et refusera de compiler si une erreur s'est glissée dans la cohérence du -programme. On peut donc modifier le programme sans crainte de provoquer une -erreur dans la structure de celui-ci. - -.. _langage dédié: https://fr.wikipedia.org/wiki/Domain-specific_programming_language - -Des exemples -============ - -OMonad_ est une extension qui donne ainsi à OCaml la possibilité de traiter les -monades selon la syntaxe issue d'Haskell. - -.. _OMonad: http://danmey.org/omonad.html - -`ppx tools`_ est une librairie qui permet de construire sa propre extension, -écrite par Alain Frish, l'auteur à qui l'on doit cette nouvelle option. Il -décrit son besoin et son usage sur son blog_. - -.. _ppx tools: https://github.com/alainfrisch/ppx_tools -.. _blog: http://www.lexifi.com/blog/syntax-extensions-without-camlp4-lets-do-it - -Certe, il était déjà possible de faire des choses `très amusantes`_ avant ça, -mais cela restait encore expérimental. Maintenant, cela devient beaucoup plus -accessible. Je ne connais pas beaucoup de langages qui poussent aussi loin la -possibilité de modifier le compilateur pour l'adapter à ses besoins, et rien -que pour ça, je trouve ça fun ! |:-)| - -.. _très amusantes: https://bitbucket.org/camlspotter/compiler-libs-hack - -.. |:-)| image:: {static}/images/icons/face-smile.png diff --git a/content/extras/custom.css b/content/extras/custom.css new file mode 100755 index 0000000..7f6e9b6 --- /dev/null +++ b/content/extras/custom.css @@ -0,0 +1,185 @@ +body { + color:#2e3440; +} + +main nav { + border-bottom: 1px solid #d8dee9; +} +hr { + background-color: #d8dee9; +} + +a.btn, +.tag-cloud a, +section#isso-thread section.auth-section p.post-action input { + background-color: #4c566a; + color:#fff; +} +a.btn:hover, +.tag-cloud a:hover { + background-color:#5e81ac; + color:#fff; +} + +a { + color: #5e81ac; +} +a:hover { + color: #5e81ac; + text-decoration:underline +} + +aside { + background-color:#2e3440; +} + +aside, +aside a { + color:#eceff4 +} +aside a:hover { + color:#d8dee9; + text-decoration:none; +} + +main article :not(pre)>code { + font-size:.8em; + white-space:nowrap; + color:#c25; + padding:1px 3px; + background-color:#f7f7f9; + border:1px solid #e1e1e8; + border-radius:3px +} +main footer p { + margin:2px; + text-align:center; + padding:0 40px; + color:#999; + font-size:11px +} +div.related-posts { + margin:15px 0; + padding-bottom:20px; + border-top:1px solid #eee; + border-bottom:1px solid #eee +} +ul.social a.sc-facebook { + background-color:#3e5b98 +} +ul.social a.sc-google { + background-color:#d93e2d +} +ul.social a.sc-instagram { + background-color:#125688 +} +ul.social a.sc-keybase { + background-color:#4c8dff +} +ul.social a.sc-pinterest { + background-color:#c92619 +} +ul.social a.sc-linkedin { + background-color:#3371b7 +} +ul.social a.sc-medium { + background-color:#00ab6b +} +ul.social a.sc-rss { + background-color:#f26109 +} +ul.social a.sc-stack-overflow { + background-color:#f90 +} +ul.social a.sc-tumblr { + background-color:#36465d +} +ul.social a.sc-twitch { + background-color:#a970ff +} +ul.social a.sc-twitter { + background-color:#4da7de +} +ul.social a.sc-youtube { + background-color:#e02a20 +} +ul.social a.sc-github, +ul.social a.sc-github-alt { + background-color:#111010 +} +ul.social a.sc-envelope { + background-color:#578ad6 +} +ul.social a.sc-reddit { + background-color:#ff4500 +} +ul.social a.sc-soundcloud { + background-color:#f50 +} +ul.social a.sc-gitlab { + background-color:#fca326 +} +ul.social a.sc-xing { + background-color:#007575 +} +ul.social a.sc-bitbucket { + background-color:#0747a6 +} +ul.social a.sc-mastodon { + background-color:#3088d4 +} +ul.social a.sc-diaspora { + color:#000; + background-color:#d5d5d5 +} +ul.social a.sc-flickr { + background-color:#ff0084 +} +ul.social a.sc-lastfm { + background-color:#d92323 +} +div.admonition div, +div.admonition p, +div.admonition pre { + margin-bottom:0 +} +div.admonition { + color:#242121; + background-color:#ccc +} +div.admonition.attention { + color:#856404; + background-color:#fff3cd +} +div.admonition.caution { + color:#856404; + background-color:#fff3cd +} +div.admonition.danger { + color:#721c24; + background-color:#f8d7da +} +div.admonition.error { + color:#721c24; + background-color:#f8d7da +} +div.admonition.hint { + color:#004085; + background-color:#cce5ff +} +div.admonition.important { + color:#155724; + background-color:#d4edda +} +div.admonition.tip { + color:#004085; + background-color:#cce5ff +} +div.admonition.warning { + color:#856404; + background-color:#fff3cd +} +div.figure { + font-size:90%; + color:#6c757d +} diff --git a/content/extras/htaccess b/content/extras/htaccess new file mode 100644 index 0000000..bca56dd --- /dev/null +++ b/content/extras/htaccess @@ -0,0 +1,22 @@ +ErrorDocument 404 /404.html + +# Redirection pour les flux rss restés sous wordpress +Redirect 301 /feed/ /feed + +# On n'autorise pas le parcours des répertoires +DirectoryIndex index.html /404.htm + +# Flux cassé depuis la maj de pelican +Redirect 301 /feeds/Libre.atom /feeds/libre.atom +Redirect 301 /feeds/Perso.atom /feeds/perso.atom + +# Réécriture pour l'ancien flux rss +<IfModule mod_rewrite.c> + RewriteEngine On + RewriteBase / + RewriteCond %{QUERY_STRING} ^feed=rss2$ [NC] + RewriteRule ^$ /feed [NC,L,R=301] +</IfModule> + +# Redirection de l'adresse temporaire utilisée pour l'application d'ardoise +Redirect 301 /pages/drawer.html /pages/script.it#ardoise-calligraphique diff --git a/content/extras/robots.txt b/content/extras/robots.txt new file mode 100644 index 0000000..51f2484 --- /dev/null +++ b/content/extras/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /drafts/ diff --git a/content/pages/404.rst b/content/pages/404.rst new file mode 100755 index 0000000..5ee1a6e --- /dev/null +++ b/content/pages/404.rst @@ -0,0 +1,10 @@ +.. -*- mode: rst -*- +.. -*- coding: utf-8 -*- + +Erreur 404 +========== + +:status: hidden +:save_as: 404.html + +La page que vous cherchez n'existe pas (encore). diff --git a/content/pages/graph-editor.html b/content/pages/graph-editor.html index b9d1731..632412a 100755 --- a/content/pages/graph-editor.html +++ b/content/pages/graph-editor.html @@ -1,7 +1,6 @@ <!DOCTYPE html> <html> <head> - <meta charset="utf-8"> <meta name="status" content="hidden" /> <title>Graph editor</title> </head> diff --git a/content/pages/script.it/script.rst b/content/pages/script.it/script.rst index 39617e1..d211bce 100755 --- a/content/pages/script.it/script.rst +++ b/content/pages/script.it/script.rst @@ -6,7 +6,7 @@ Ardoise calligraphique :status: hidden :save_as: pages/script.it/index.html -:url: pages/script.it +:url: pages/script.it/ .. raw:: html |