summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorache <ache@ache.one>2017-08-17 05:17:10 +0200
committerache <ache@ache.one>2017-08-17 05:17:10 +0200
commit4d483292bab90796fac57ff1bbdd025219b1c852 (patch)
tree3e40db773c2f876f30e3365c12e98af12cf35014
parentAjout des liens sur les logos SVG (diff)
New website prototype
-rw-r--r--Makefile12
-rw-r--r--article/article.m416
-rw-r--r--article/duckduckgo_google_en_mieux.html199
-rw-r--r--article/duckduckgo_google_en_mieux.m40
-rw-r--r--article/duckduckgo_google_en_mieux.md143
-rw-r--r--article/intro.m44
-rw-r--r--article/res/DuckDuckGo_Logo.png (renamed from res/DuckDuckGo_Logo.png)bin14784 -> 14784 bytes
-rw-r--r--article/res/DuckDuckGo_Logo.svg (renamed from res/DuckDuckGo_Logo.svg)0
-rwxr-xr-xarticle/res/zeroClickBox1.png (renamed from res/zeroClickBox1.png)bin33536 -> 33536 bytes
-rwxr-xr-xdesign/contenu.css176
-rwxr-xr-xdesign/design.css1
-rw-r--r--headers.m410
-rwxr-xr-xindex.html71
-rw-r--r--index.m411
-rw-r--r--left.m427
-rw-r--r--makefile58
-rw-r--r--res/acheLogo.svg27
-rw-r--r--res/gitLogo.svg1
-rwxr-xr-xres/gith.svg2
-rw-r--r--res/mastoLogo.svg1
-rwxr-xr-xres/tw.svg21
-rwxr-xr-xres/twit.svg17
-rw-r--r--res/twitterLogo.svg18
-rwxr-xr-xres/wtf.svg28
-rw-r--r--src/Id.hs19
-rw-r--r--src/Secret.hs46
-rw-r--r--src/articleFilter.hs55
-rw-r--r--src/introFilter.hs51
28 files changed, 518 insertions, 496 deletions
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 4f485b8..0000000
--- a/Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-
-install:
- cp -R */ /var/www/ache
- cp index.html /var/www/ache
- mkdir /var/www/ache/git
- [ -d /home/achessh/git/vim ] && ln -s /home/achessh/git/vim /var/www/ache/
- [ -d /share/shared ] && ln -s /share/shared /var/www/ache/shared
-
-
-clean:
- rm -R /var/www/ache/*
-
diff --git a/article/article.m4 b/article/article.m4
new file mode 100644
index 0000000..bd1d3d3
--- /dev/null
+++ b/article/article.m4
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+
+include(headers.htm)
+
+ <body>
+
+
+include(left.htm)
+
+
+<article id="contenu" role="article" class="post hentry clearfix">
+include(article/article.htm)
+</article>
+
+</body></html>
diff --git a/article/duckduckgo_google_en_mieux.html b/article/duckduckgo_google_en_mieux.html
deleted file mode 100644
index a6f68d2..0000000
--- a/article/duckduckgo_google_en_mieux.html
+++ /dev/null
@@ -1,199 +0,0 @@
-
-<!DOCTYPE html>
-<html>
- <head>
-
-
- <script type="text/javascript" src="/static/js/analytics.js"></script>
- <script type="text/javascript">archive_analytics.values.server_name="wwwb-app19.us.archive.org";archive_analytics.values.server_ms=149;</script>
- <link type="text/css" rel="stylesheet" href="/static/css/banner-styles.css"/>
-
- <meta charset="utf-8" />
- <title>
- DuckDuckGo, Google en mieux ?</title>
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <link rel="canonical" href="http://ache.one/"/>
- <link rel="shortcut icon" type="image/svg" href="/res/ache.ico" />
- <link rel="stylesheet" type="text/css" title="Design" href="design/design.css" />
- <style>
-@import url("../design/design.css");</style>
- <meta name= "description" content="Site d'ache : Articles et présentation de mes projets" />
- </head>
- <body>
- <aside id="side-bar">
- <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" id="svg">
- <g transform="scale(0.125)">
- <rect width="100" height="100" x="50" y="300" id="rect1" style="fill:#000" />
- <rect width="100" height="100" x="50" y="400" id="rect2" style="fill:#000" />
- <rect width="100" height="100" x="50" y="500" id="rect3" style="fill:#000" />
- <rect width="100" height="100" x="50" y="600" id="rect4" style="fill:#000" />
- <rect width="100" height="100" x="150" y="600" id="rect5" style="fill:#000" />
- <rect width="100" height="100" x="250" y="600" id="rect6" style="fill:#000" />
- <rect width="100" height="100" x="350" y="600" id="rect7" style="fill:#000" />
- <rect width="100" height="100" x="450" y="600" id="rect8" style="fill:#000" />
- <rect width="100" height="100" x="550" y="600" id="rect9" style="fill:#000" />
- <rect width="100" height="100" x="650" y="600" id="rect10" style="fill:#000" />
- <rect width="100" height="100" x="650" y="500" id="rect11" style="fill:#000" />
- <rect width="100" height="100" x="650" y="400" id="rect12" style="fill:#000" />
- <rect width="100" height="100" x="650" y="300" id="rect13" style="fill:#000" />
- <rect width="100" height="100" x="150" y="700" id="rect14" style="fill:#000" />
- <rect width="100" height="100" x="550" y="700" id="rect15" style="fill:#000" />
- <rect width="100" height="100" x="250" y="300" id="rect16" style="fill:#000" />
- <rect width="100" height="100" x="450" y="300" id="rect17" style="fill:#000" />
- <rect width="100" height="100" x="150" y="200" id="rect18" style="fill:#000" />
- <rect width="100" height="100" x="550" y="200" id="rect19" style="fill:#000" />
- <rect width="100" height="100" x="250" y="100" id="rect20" style="fill:#000" />
- <rect width="100" height="100" x="450" y="100" id="rect21" style="fill:#000" />
- <rect width="100" height="100" x="350" y="000" id="rect22" style="fill:#000" />
- </g>
- </svg>
- <h2> Ache </h2>
- <div id="desc">
- Étudiant en Math-Info <br /> <span id="about"> GNU\Linux, C, C++, Python, Math, ... <br /> </span>
- </div>
- <nav>
- <ul>
- <li class="about_bar">
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
- <g transform="translate(-16,-16)scale(0.053)">
- <path d="
- M 630, 425
- A 195, 195 0 0 1 331, 600
- A 142, 142 0 0 0 428, 570
- A 70, 70 0 0 1 370, 523
- A 70, 70 0 0 0 401, 521
- A 70, 70 0 0 1 344, 455
- A 70, 70 0 0 0 372, 460
- A 70, 70 0 0 1 354, 370
- A 195, 195 0 0 0 495, 442
- A 67, 67 0 0 1 611, 380
- A 117, 117 0 0 0 654, 363
- A 65, 65 0 0 1 623, 401
- A 117, 117 0 0 0 662, 390
- A 65, 65 0 0 1 630, 425
- Z"
- style="fill:#777;"/>
- </g>
- </svg>
- </li><li class="about_bar">
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
- <g transform="scale(0.02)"><path d="M0 500.288q0 129.32 62.952 234.728 62.952 108.824 170.8 171.288t234.728 62.464q127.368 0 235.704 -62.464 108.336 -62.952 170.556 -171.044t62.22 -234.972q0 -128.832 -62.464 -235.704 -62.952 -108.336 -171.044 -170.556t-234.972 -62.22q-129.32 0 -234.728 62.952 -108.824 62.952 -171.288 170.8t-62.464 234.728zm78.08 0q0 -78.08 30.744 -150.792t83.936 -125.416q53.192 -53.192 125.416 -83.692t150.304 -30.5 150.792 30.5 125.904 83.692q52.704 52.704 83.204 125.416t30.5 150.792q0 83.936 -34.404 160.064t-96.624 131.516 -142.252 80.276v-137.616q0 -51.24 -41.968 -80.032 102.968 -9.272 150.548 -52.216t47.58 -136.152q0 -72.224 -44.408 -121.512 8.784 -26.352 8.784 -50.752 0 -36.112 -16.592 -66.368 -32.696 0 -58.56 10.736t-63.44 37.088q-45.384 -10.248 -93.696 -10.248 -55.144 0 -102.968 11.224 -36.6 -26.84 -63.196 -37.82t-60.268 -10.98q-16.104 30.744 -16.104 66.368 0 25.376 8.296 51.24 -44.408 47.824 -44.408 121.024 0 93.208 47.336 135.664t151.768 52.216q-27.816 18.544 -38.552 54.168 -23.912 8.296 -49.776 8.296 -19.52 0 -33.672 -8.784 -4.392 -2.44 -8.052 -5.124t-7.564 -6.588 -6.344 -6.1 -6.344 -7.564 -5.124 -6.832 -5.856 -7.808 -5.124 -6.832q-22.936 -30.256 -54.656 -30.256 -17.08 0 -17.08 7.32 0 2.928 8.296 9.76 15.616 13.664 16.592 14.64 11.712 9.272 13.176 11.712 14.152 17.568 21.472 38.552 27.328 61 93.696 61 10.736 0 41.968 -4.88v103.456q-80.032 -24.888 -142.252 -80.276t-96.624 -131.516 -34.404 -160.064z" style="fill: #777;"/></g></svg>
- </li><li class="about_bar">
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" height="20">
- <g transform="scale(0.04)">
- <path fill="#777" d="M119.9,336.1C89.1,336.1,64,361.2,64,391.9c0,30.8,25.1,55.6,55.9,55.6c30.9,0,55.9-24.9,55.9-55.6 C175.8,361.2,150.8,336.1,119.9,336.1z"/>
- <path fill="#777" d="M64,192v79.9c48,0,94.1,14.199,128,48.1s48,79.9,48,128h80C320,308.1,204,192,64,192z"/>
- <path fill="#777" d="M64,64v79.9c171,0,303.9,133,303.9,304.1H448C448,236.3,276,64,64,64z"/>
- </g>
- </svg>
- </li>
- </ul>
- </nav>
- <nav>
- <ul>
- <li class="sommaire_blien"><a href="/index.html">Accueil</a></li><li class="sommaire_blien"><a href="http://projet.ache.one/"><s>Projets</s></a></li><li class="sommaire_blien"><a href="/contact/">Contact</a></li>
- </ul>
- </nav>
- </aside>
-
- <article id="contenu" role="article" class="post hentry clearfix">
- <header>
- <h1 id="contenu_top2">
- DuckDuckGo, Google en mieux ?</h1>
- <p>
- Post&eacute; le <time datetime="2012-04-13">
- 13/04/2012</time>
- </p>
- </header>
- <object type="image/svg+xml" data="/res/DuckDuckGo_Logo.svg" style="float:right;width:200px;height:200px;">
- <img src="/res/DuckDuckGo_Logo.png" alt="Logo Article"/>
- <p>
- http://ache.one/res/DuckDuckGo_Logo.svg</p>
- </object>
- <section class="entry-content clearfix">
-
- <div id="intro">
- <br />
- Depuis un certain temps d&eacute;j&agrave;, Google ne se consacre plus enti&egrave;rement &agrave; son moteur de recherche. En effet, la firme est d&eacute;j&agrave; bien implent&eacute;e dans la plupart des pays occidentaux o&ugrave; elle est le site le plus visit&eacute;. Mais la concurrence, elle, s'est d&eacute;velopp&eacute;e. Les moteurs de recherches tels que DuckDuckGo &eacute;voluent avec le temps, jusqu'&agrave; devenir plus pratique et ergonomique que Google.<br />
- <p>
- DuckDuckGo est un moteur de recherche assez jeune mais qui a beaucoup d'avenir. En effet, il allie rapidit&eacute; et fonctionnalit&eacute;s innovantes, tout en conservant la vie priv&eacute;e de l'utilisateur</p>
- <br />
- </div>
- <br />
- <h3>
- Bang ! </h3>
- <br />
- <br />
- <p>
- Vous connaissiez le "I'm Feeling Lucky" de Google ("J'ai de la chance" en fran&ccedil;ais). DuckDuckGo lui propose une fonctionnalit&eacute; similaire du nom de "I'm Feeling Ducky". En effet, il suffit de placer un point d'exclamation ("bang" en anglais) dans les termes de votre recherche afin d'arriver directement sur le premier r&eacute;sultat. Mais ce n'est pas tout, sinon !Bang n'aurait rien d'innovant. DuckDuckGo permet d'acc&eacute;der simplement &agrave; certains sites environs une centaine. Par exemple, "!wfr" permet d'afficher directement la page d'accueil de Wipip&eacute;dia en Fran&ccedil;ais ("!w" pour la version anglaise). On peut remarquer notamment "!sdz" qui permet d'afficher directement la page d'accueil du site du z&eacute;ro. Il existe pour tous les sites couramment utilis&eacute;s comme FaceBook par exemple ("!fb").<br />
- Toujours pas convaincu ? !Bang peut &eacute;galement prendre des arguments dans ces !Bang afin de cr&eacute;er une v&eacute;ritable ligne de commande. On peut ainsi directement acc&eacute;der &agrave; l'article DuckDuckGo de Wikip&eacute;dia en fran&ccedil;ais en tapants simplement "!wfr DuckDuckGo". Et cela fonctionne avec &eacute;norm&eacute;ment de mot-cl&eacute; comme "!ixquick", "!sp", "!g" (Google), "!answers", ... <br />
- <br />
- DuckDuckGo devient ainsi une v&eacute;ritable ligne de commande dans votre navigateur Web. De quoi satisfaire les adeptes de la console. D'ailleur de nombreux !Bang son adapt&eacute; au developpement comme "!cpp" pour la man du C++ ou encore "!golang" pour une recherche dans la documentation de GO (le langage de programmation)<br />
- <br />
- Vous pouvez consulter la liste des <a style="color: #944040" href="https://duckduckgo.com/bang.html">
- !Bang</a>
- en tappant "!Bang" dans DuckDuckGo.</p>
- <br />
- <br />
- <br />
- <h3>
- Zero Click Infobox</h3>
- <br />
- <p>
- <br />
- <img class="fr" src="/res/zeroClickBox1.png" alt="Z&eacute;roClickBox"/>
- <br />
- Mais qu'est-ce dont encore ce truc-l&agrave; ? La Z&eacute;ro Click Infobox, est une boite d'information apparaissant avant les premiers liens et qui essaye de vous apporter l'information que vous recherchez sans que vous ayez besoin de visiter un quelconque autre site. Pratique quand on est press&eacute;. Elle vous propose &eacute;galement quelques liens utiles &agrave; tout d&eacute;but de recherche. <br />
- Afin d'apporter l'information, la Zero Click Infobox va s'appuyer sur d'autres sites comme Wikip&eacute;dia. Elle permet aussi comme la <a href="https://fr.wikipedia.org/wiki/Calculatrice_Google">
- calculatrice de Google</a>
- d'effectuer des calculs directement dans le champ de recherche. L&agrave; o&ugrave; DuckDuckGo innove, c'est dans la pr&eacute;cision. En effet, Google se plante assez minablement dans des calculs simples pour des raisons des pr&eacute;cisions. On connait tous le c&eacute;l&egrave;bre <a href="http://www.google.com/search?&amp;q=399999999999999+-+399999999999998">
- "399 999 999 999 999 - 399 999 999 999 998 = 0"</a>
- de Google. Pour pallier ce probl&egrave;me de pr&eacute;cision, DuckDuckGo va directement chercher sur WorlFramAlpha afin de faire les calculs les plus compliqu&eacute;s (Il traite cependant les plus simples). <br />
- Mais quitte &agrave; utiliser WolframAlpha ... autant utiliser toutes les fonctionnalit&eacute;s disponibles ... C'est ce que propose DuckDuckGo. Ainsi, on peut retrouver certaines informations tr&egrave;s rapidement "mass of jupiter" par exemple ou encore "base64 Hello World" qui donne directement "SGVsbG8gV29ybGQ=". Ce syst&egrave;me de conversion marche &eacute;galement pour le binaire, rot13, SHA, ... Plus d'info et de fonctionnalit&eacute;s sur leur page d'information <a style="color: #944040" href="http://duckduckgo.com/tech.html">
- tech Goodies</a>
- . Toutes les lister seraient trop long.<br />
- </p>
- <br />
- <br />
- <h3>
- Respect de la vie priv&eacute;e</h3>
- <br />
- <p>
- <br />
- Contrairement &agrave; Google, DuckDuckGo respecte la vie priv&eacute;e de ses utilisateurs. DuckDuckGo reproche &agrave; Google de personnaliser les recherches et de cr&eacute;er une sorte de bulle qui r&eacute;duit les r&eacute;sultats en fonction de vos centres d'int&eacute;r&egrave;ts et donc ainsi r&eacute;duire le nombre d'information auxquelles vous avez acc&egrave;s. DuckDuckGo lui propose donc les m&egrave;mes r&eacute;sultats pour tous les utilisateurs. Voir la page <a href="http://dontbubble.us/">
- dontbubble.us</a>
- pour plus d'informations.<br />
- Par ailleurs DuckDuckGo est totalement contre le tracking. Son slogan est d'ailleurs "Google tracks you. We don't." . D'ailleurs, DuckDuckGo n'utilise pas de Coockies (mis &agrave; part pour les pr&eacute;f&eacute;rences, mais il propose &eacute;galement une alternative aux Cookies par URL) et ne stocke aucun historique des requ&egrave;tes. Leur campagne <a href="http://donttrack.us/">
- donttrack.us</a>
- essaye d'ailleurs d'&egrave;tre assez choquante. <br />
- Encore plus de respect de la vie priv&eacute;e ? DuckDuckGo propose la recherche anonyme par l'utilisation de TOR. Ou comment arriver &agrave; l'anonymat le plus totale. Vous pouvez &eacute;galement utiliser la version HTTPS qui utilise donc une couche de chiffrement SSL pour que tout soit chiffr&eacute; du d&eacute;but &agrave; la fin.<br />
- </p>
- <br />
- <h3>
- Un Moteur de recherche proche de ses utilisateurs</h3>
- <br />
- <p>
- <br />
- DuckDuckGo est le seul moteur de recherche que je connaisse aussi ouvert et aussi &agrave; l'&eacute;coute de ses utilisateurs. DuckDuckGo vous permets <a style="color: #944040" href="https://duckduckgo.com/newbang.html">
- d'ajouter vos propres !Bang</a>
- au site (s'il y a plusieurs demandes, ils l'ajouteront). C'est certainement comme cela qu'on peut retrouver "!sdz" comme !Bang.<br />
- Pour les utilisateurs trouvant le moteur trop gourmand, DuckDuckGo propose &eacute;galement une version lite de son moteur de recherche. Celui-ci est cependant basique mais l'initiative est preuve de la bonne volont&eacute; de DuckDuckGo de vouloir bien faire.<br />
- DuckDuckGo est aussi une petite communaut&eacute;. En effet, en plus d'&egrave;tre totalement transparent sur leurs informations (code source, <a href="http://duckduckgo.com/traffic.html">
- info trafique</a>
- , ...), ils vous proposent m&egrave;me de participer &agrave; l'am&eacute;lioration du Wiki, de la traduction de DuckDuckGo, au d&eacute;veloppement du site, ou tout simplement de discuter sur des am&eacute;liorations &agrave; apporter sur #duckduckgo sur Freenode. <a href="https://dukgo.com/base/welcome">
- Voir la plateforme de d&eacute;veloppement</a>
- </p>
- <br />
- <br />
- <p>
- DuckDuckGo est ainsi une v&eacute;ritable mine d'or. Proposant de nombreuses fonctionnalit&eacute;s innovantes. Il est de ce fait un des meilleurs moteurs de recherche du moment. Personnellement, je l'adopte. Je d&eacute;couvre de plus en plus de fonctionnalit&eacute; en l'utilisant quotidiennement et &ccedil;a fait vraiment plaisir de gagner chaque jour en ergonomie. DuckDuckGo vient r&eacute;cemment de d&eacute;passer le million de requ&egrave;tes par jour.<br />
- <br />
- Consulter la page d'accueil de DuckDuckGo pour plus d'info sur l'utilisation du moteur de recherche. <br />
- </p>
- <br />
- <br />
- </section>
-
- </article>
- </body>
-</html>
diff --git a/article/duckduckgo_google_en_mieux.m4 b/article/duckduckgo_google_en_mieux.m4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/article/duckduckgo_google_en_mieux.m4
diff --git a/article/duckduckgo_google_en_mieux.md b/article/duckduckgo_google_en_mieux.md
new file mode 100644
index 0000000..bb6c8b1
--- /dev/null
+++ b/article/duckduckgo_google_en_mieux.md
@@ -0,0 +1,143 @@
+DuckDuckGo, Google en mieux ?
+===============
+![Logo DuckDuckGo](res/DuckDuckGo_Logo.svg){.fr}\
+
+
+Depuis un certain temps déjà, Google ne se consacre plus entièrement à
+son moteur de recherche. En effet, la firme est déjà bien implentée dans
+la plupart des pays occidentaux où elle est le site le plus visité. Mais
+la concurrence, elle, s'est développée. Les moteurs de recherches tels
+que DuckDuckGo évoluent avec le temps, jusqu'à devenir plus pratique et
+ergonomique que Google.
+
+DuckDuckGo est un moteur de recherche assez jeune mais qui a beaucoup
+d'avenir. En effet, il allie rapidité et fonctionnalités innovantes,
+tout en conservant la vie privée de l'utilisateur
+
+
+### Bang !
+
+Vous connaissiez le "I'm Feeling Lucky" de Google ("J'ai de la chance"
+en français). DuckDuckGo lui propose une fonctionnalité similaire du nom
+de "I'm Feeling Ducky". En effet, il suffit de placer un point
+d'exclamation ("bang" en anglais) dans les termes de votre recherche
+afin d'arriver directement sur le premier résultat. Mais ce n'est pas
+tout, sinon !Bang n'aurait rien d'innovant. DuckDuckGo permet d'accéder
+simplement à certains sites environs une centaine. Par exemple, "!wfr"
+permet d'afficher directement la page d'accueil de Wipipédia en Français
+("!w" pour la version anglaise). On peut remarquer notamment "!sdz" qui
+permet d'afficher directement la page d'accueil du site du zéro. Il
+existe pour tous les sites couramment utilisés comme FaceBook par
+exemple ("!fb").
+
+Toujours pas convaincu ? !Bang peut également prendre des arguments dans
+ces !Bang afin de créer une véritable ligne de commande. On peut ainsi
+directement accéder à l'article DuckDuckGo de Wikipédia en français en
+tapants simplement "!wfr DuckDuckGo". Et cela fonctionne avec énormément
+de mot-clé comme "!ixquick", "!sp", "!g" (Google), "!answers", ...
+
+DuckDuckGo devient ainsi une véritable ligne de commande dans votre
+navigateur Web. De quoi satisfaire les adeptes de la console. D'ailleur
+de nombreux !Bang son adapté au developpement comme "!cpp" pour la man
+du C++ ou encore "!golang" pour une recherche dans la documentation de
+GO (le langage de programmation)
+
+Vous pouvez consulter la liste des
+[!Bang](https://duckduckgo.com/bang.html) en tappant "!Bang" dans
+DuckDuckGo.
+
+
+### Zero Click Infobox
+
+![ZéroClickBox](res/zeroClickBox1.png){.fr}\
+
+Mais qu'est-ce dont encore ce truc-là ? La Zéro Click Infobox, est une
+boite d'information apparaissant avant les premiers liens et qui essaye
+de vous apporter l'information que vous recherchez sans que vous ayez
+besoin de visiter un quelconque autre site. Pratique quand on est
+pressé. Elle vous propose également quelques liens utiles à tout début
+de recherche.
+
+Afin d'apporter l'information, la Zero Click Infobox va s'appuyer sur
+d'autres sites comme Wikipédia. Elle permet aussi comme la [calculatrice
+de Google](https://fr.wikipedia.org/wiki/Calculatrice_Google)
+d'effectuer des calculs directement dans le champ de recherche. Là où
+DuckDuckGo innove, c'est dans la précision. En effet, Google se plante
+assez minablement dans des calculs simples pour des raisons des
+précisions. On connait tous le célèbre ["399 999 999 999 999 - 399 999
+999 999 998 =
+0"](http://www.google.com/search?&q=399999999999999+-+399999999999998)
+de Google. Pour pallier ce problème de précision, DuckDuckGo va
+directement chercher sur WorlFramAlpha afin de faire les calculs les
+plus compliqués (Il traite cependant les plus simples).
+
+Mais quitte à utiliser WolframAlpha ... autant utiliser toutes les
+fonctionnalités disponibles ... C'est ce que propose DuckDuckGo. Ainsi,
+on peut retrouver certaines informations très rapidement "mass of
+jupiter" par exemple ou encore "base64 Hello World" qui donne
+directement "SGVsbG8gV29ybGQ=". Ce système de conversion marche
+également pour le binaire, rot13, SHA, ... Plus d'info et de
+fonctionnalités sur leur page d'information [tech
+Goodies](http://duckduckgo.com/tech.html) . Toutes les lister seraient
+trop long.
+
+
+### Respect de la vie privée
+
+Contrairement à Google, DuckDuckGo respecte la vie privée de ses
+utilisateurs. DuckDuckGo reproche à Google de personnaliser les
+recherches et de créer une sorte de bulle qui réduit les résultats en
+fonction de vos centres d'intérèts et donc ainsi réduire le nombre
+d'information auxquelles vous avez accès. DuckDuckGo lui propose donc
+les mèmes résultats pour tous les utilisateurs. Voir la page
+[dontbubble.us](http://dontbubble.us/) pour plus d'informations.
+
+Par ailleurs DuckDuckGo est totalement contre le tracking. Son slogan
+est d'ailleurs "Google tracks you. We don't." . D'ailleurs, DuckDuckGo
+n'utilise pas de Coockies (mis à part pour les préférences, mais il
+propose également une alternative aux Cookies par URL) et ne stocke
+aucun historique des requètes. Leur campagne
+[donttrack.us](http://donttrack.us/) essaye d'ailleurs d'ètre assez
+choquante.
+
+Encore plus de respect de la vie privée ? DuckDuckGo propose la
+recherche anonyme par l'utilisation de TOR. Ou comment arriver à
+l'anonymat le plus totale. Vous pouvez également utiliser la version
+HTTPS qui utilise donc une couche de chiffrement SSL pour que tout soit
+chiffré du début à la fin.
+
+
+### Un Moteur de recherche proche de ses utilisateurs
+
+
+DuckDuckGo est le seul moteur de recherche que je connaisse aussi ouvert
+et aussi à l'écoute de ses utilisateurs. DuckDuckGo vous permets
+[d'ajouter vos propres !Bang](https://duckduckgo.com/newbang.html) au
+site (s'il y a plusieurs demandes, ils l'ajouteront). C'est certainement
+comme cela qu'on peut retrouver "!sdz" comme !Bang.
+
+Pour les utilisateurs trouvant le moteur trop gourmand, DuckDuckGo
+propose également une version lite de son moteur de recherche. Celui-ci
+est cependant basique mais l'initiative est preuve de la bonne volonté
+de DuckDuckGo de vouloir bien faire.
+
+DuckDuckGo est aussi une petite communauté. En effet, en plus d'ètre
+totalement transparent sur leurs informations (code source, [info
+trafique](http://duckduckgo.com/traffic.html) , ...), ils vous proposent
+mème de participer à l'amélioration du Wiki, de la traduction de
+DuckDuckGo, au développement du site, ou tout simplement de discuter sur
+des améliorations à apporter sur \#duckduckgo sur Freenode. [Voir la
+plateforme de développement](https://dukgo.com/base/welcome)
+
+
+DuckDuckGo est ainsi une véritable mine d'or. Proposant de nombreuses
+fonctionnalités innovantes. Il est de ce fait un des meilleurs moteurs
+de recherche du moment. Personnellement, je l'adopte. Je découvre de
+plus en plus de fonctionnalité en l'utilisant quotidiennement et ça fait
+vraiment plaisir de gagner chaque jour en ergonomie. DuckDuckGo vient
+récemment de dépasser le million de requètes par jour.
+
+
+Consulter la page d'accueil de DuckDuckGo pour plus d'info sur
+l'utilisation du moteur de recherche.
+
diff --git a/article/intro.m4 b/article/intro.m4
new file mode 100644
index 0000000..be1b945
--- /dev/null
+++ b/article/intro.m4
@@ -0,0 +1,4 @@
+<article id="contenu" role="article" class="post hentry clearfix">
+undivert(article/intro.htm)
+<a href="linkFileNameArticle">Lire la suite</a>
+</article>
diff --git a/res/DuckDuckGo_Logo.png b/article/res/DuckDuckGo_Logo.png
index 780a444..780a444 100644
--- a/res/DuckDuckGo_Logo.png
+++ b/article/res/DuckDuckGo_Logo.png
Binary files differ
diff --git a/res/DuckDuckGo_Logo.svg b/article/res/DuckDuckGo_Logo.svg
index 4b53b6e..4b53b6e 100644
--- a/res/DuckDuckGo_Logo.svg
+++ b/article/res/DuckDuckGo_Logo.svg
diff --git a/res/zeroClickBox1.png b/article/res/zeroClickBox1.png
index db92266..db92266 100755
--- a/res/zeroClickBox1.png
+++ b/article/res/zeroClickBox1.png
Binary files differ
diff --git a/design/contenu.css b/design/contenu.css
index 8bcca83..0b7dc48 100755
--- a/design/contenu.css
+++ b/design/contenu.css
@@ -1,67 +1,21 @@
-
-#article {
- border-top: 3px solid #eaeaea;
- border-top: 3px solid rgba(51, 51, 51, 0.1);
- padding: 1.6em 0;
- border-color: #eaeaea !important; /* Make sure color schemes don't affect to print */
- margin-left: 10px;
-}
-#contenu_top
-{
- font-size: 1.5em;
- font-weight: bold;
- font-family: OpenSymbol, "Vemana2000", serif;
- text-shadow: 0 2px 0 #FFF;
- line-height: 250%;
- color: #121311;
-}
-#info_article {
- margin-right: 2%;
- margin-left: 3%;
- text-indent: 3%;
- float: left;
- width: 95%;
-}
-#suite {
- float: right;
- color: #121212;
- font-size: 0.9em;
+section p {
+ text-indent: 10%;
}
-#autres_articles a
-{
- display: inline-block;
- text-indent: 30px;
- text-decoration: none;
- font-style: italic;
- font-size: 0.9em;
- outline: none;
- color: #3322F0;
-}
-#autres_articles a:hover
-{
- color: #222299;
-}
-#autres_articles:before {
- content: "______________________________";
-}
-#autres_articles a:before {
- //content: ">_";
-}
-#autres_articles h4
-{
- text-indent: 10px;
- font-style: italic;
+section p:nth-of-type(2) {
+ margin-top: 2.5%;
+ padding-left: 6%;
+ text-indent: 5%;
+ font-size: 0.65em;
+ color: #944040;
}
-#autres_articles
-{
- float: left;
-
- width: 100%;
- top: 0px;
- text-align: center;
- margin-bottom: 20px;
+section p:first-of-type {
+ margin-top: 2.5%;
+ padding-left: 6%;
+ text-indent: 5%;
+ font-size: 0.65em;
+ color: #944040;
}
-#contenu
+article
{
margin-right: 2%;
margin-left: 3%;
@@ -72,17 +26,10 @@
padding-right:0%;
padding-left:0%;
padding: 1.6em 1.6em;
-
-
}
+
@media only screen and (min-width: 768px) {
- #autres_articles
- {
- float: none;
- width: auto;
- background: #f1f1f1;
- }
- #contenu {
+ article {
float: none;
margin-right: 7%;
margin-left: 390px;
@@ -97,85 +44,22 @@
border-color: #eaeaea !important;
margin-top: 50px;
}
- #info_article {
- padding-left: 290px;
- }
-}
-#contenu_
-{
- height: auto;
-}
-#contenu_ p
-{
- font-size: 1em;
-}
-#contenu_ h3
-{
- color: #6b633e;
}
+
@media only screen and (min-width: 768px) {
-#contenu_ h3 {font-size: 1.4em;}
-#contenu_top2 {font-size: 1.5em;}
-}
-#intro
-{
- margin-top: 2.5%;
- padding-left: 6%;
- text-indent: 5%;
- font-size: 0.65em;
- color: #944040;
-}
-#intro:first-letter
-{
- font-size: 1.3em;
- color: #bf5353;
- font-weight: bold;
+ section p:first-of-type {
+ margin-top: 2.5%;
+ padding-left: 6%;
+ text-indent: 5%;
+ font-size: 0.65em;
+ color: #944040;
+ }
}
-#conclusion
-{
- margin-top: 2.5%;
- padding-left: 6%;
- text-indent: 5%;
- font-size: 0.9em;
- color: #575883;
-}
-#contenu_ p
-{
- text-indent: 6%;
-}
-#contenu_ a
-{
- text-decoration: none;
- outline: none;
-}
-#contenu_ a:hover
-{
- font-style: italic;
-}
-.lireLaSuite {
- float: left;
- width: 135px;
- opacity:0.8;
- font-size: 0.6em;
- font-weight: bold;
- font-family: monospace, serif;
- text-shadow: 0 1px 0 #DDD;
- color: #888888;
-}
-.lireLaSuite a {
- color: #888888;
- outline: none;
- text-decoration: none;
-}
-
-
-#foot_cloud
+.miniature
{
- background-image: url(../cloud.svg);
- position: absolute;
- background-position:bottom left;
- width: 100%; height: 150px;
- position: absolute;
- margin: 45px 0px 0px 0px;
+ float:left;
+ width:100px;
+ height:100px;
}
+
diff --git a/design/design.css b/design/design.css
index 9179437..9fe45ef 100755
--- a/design/design.css
+++ b/design/design.css
@@ -55,3 +55,4 @@ img {
margin: 0 auto;
max-width: 100%;
}
+
diff --git a/headers.m4 b/headers.m4
new file mode 100644
index 0000000..7b4232a
--- /dev/null
+++ b/headers.m4
@@ -0,0 +1,10 @@
+<head>
+<meta charset="utf-8" />
+ <title>DuckDuckGo, Google en mieux ?</title>
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <link rel="canonical" href="http://ache.one/"/>
+ <link rel="shortcut icon" type="image/svg" href="/res/ache.ico" />
+ <link rel="stylesheet" type="text/css" title="Design" href="design/design.css" />
+ <style>@import url("design/design.css");</style>
+ <meta name= "description" content="Site d'ache : Articles et présentation de mes projets" />
+</head>
diff --git a/index.html b/index.html
deleted file mode 100755
index 4ab7277..0000000
--- a/index.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<html> <head> <meta charset="utf-8" /><title>DuckDuckGo, Google en mieux ?</title><meta name="viewport" content="width=device-width, initial-scale=1" /><link rel="canonical" href="http://ache.one/"/><link rel="shortcut icon" type="image/svg" href="/res/ache.ico" /><link rel="stylesheet" type="text/css" title="Design" href="design/design.css" /><style>@import url("design/design.css");</style><meta name= "description" content="Site d'ache : Articles et présentation de mes projets" /></head><body>
- <aside id="side-bar">
- <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" id="svg">
- <g transform="scale(0.125)">
- <rect width="100" height="100" x="50" y="300" id="rect1" style="fill:#000" />
- <rect width="100" height="100" x="50" y="400" id="rect2" style="fill:#000" />
- <rect width="100" height="100" x="50" y="500" id="rect3" style="fill:#000" />
- <rect width="100" height="100" x="50" y="600" id="rect4" style="fill:#000" />
- <rect width="100" height="100" x="150" y="600" id="rect5" style="fill:#000" />
- <rect width="100" height="100" x="250" y="600" id="rect6" style="fill:#000" />
- <rect width="100" height="100" x="350" y="600" id="rect7" style="fill:#000" />
- <rect width="100" height="100" x="450" y="600" id="rect8" style="fill:#000" />
- <rect width="100" height="100" x="550" y="600" id="rect9" style="fill:#000" />
- <rect width="100" height="100" x="650" y="600" id="rect10" style="fill:#000" />
- <rect width="100" height="100" x="650" y="500" id="rect11" style="fill:#000" />
- <rect width="100" height="100" x="650" y="400" id="rect12" style="fill:#000" />
- <rect width="100" height="100" x="650" y="300" id="rect13" style="fill:#000" />
- <rect width="100" height="100" x="150" y="700" id="rect14" style="fill:#000" />
- <rect width="100" height="100" x="550" y="700" id="rect15" style="fill:#000" />
- <rect width="100" height="100" x="250" y="300" id="rect16" style="fill:#000" />
- <rect width="100" height="100" x="450" y="300" id="rect17" style="fill:#000" />
- <rect width="100" height="100" x="150" y="200" id="rect18" style="fill:#000" />
- <rect width="100" height="100" x="550" y="200" id="rect19" style="fill:#000" />
- <rect width="100" height="100" x="250" y="100" id="rect20" style="fill:#000" />
- <rect width="100" height="100" x="450" y="100" id="rect21" style="fill:#000" />
- <rect width="100" height="100" x="350" y="000" id="rect22" style="fill:#000" />
- </g>
- </svg>
- <h2> Ache </h2>
- <div id="desc"> Étudiant en Math-Info <br /> <span id="about">GNU\Linux, C, C++, Python, Math, ... <br /> </span></div><nav> <ul> <li class="about_bar"><a href="https://twitter.com/arobase_che">
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
- <g transform="translate(-16,-16)scale(0.053)">
- <path d="
- M 630, 425
- A 195, 195 0 0 1 331, 600
- A 142, 142 0 0 0 428, 570
- A 70, 70 0 0 1 370, 523
- A 70, 70 0 0 0 401, 521
- A 70, 70 0 0 1 344, 455
- A 70, 70 0 0 0 372, 460
- A 70, 70 0 0 1 354, 370
- A 195, 195 0 0 0 495, 442
- A 67, 67 0 0 1 611, 380
- A 117, 117 0 0 0 654, 363
- A 65, 65 0 0 1 623, 401
- A 117, 117 0 0 0 662, 390
- A 65, 65 0 0 1 630, 425
- Z"
- style="fill:#777;"/>
- </g>
- </svg> </a>
- </li><li class="about_bar"><a href="http://git.ache.one">
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"> <g transform="scale(0.18)"> <path d="M 111.78,51.976994 62.035,2.2380937 c -2.8622,-2.86480012 -7.5082,-2.86480012 -10.374,0 l -10.329,10.3300003 13.102,13.102 c 3.0459,-1.0284 6.5371,-0.33888 8.9639,2.0884 2.4394,2.4424 3.124,5.9634 2.0698,9.0195 l 12.628,12.628 c 3.0551,-1.0528 6.58,-0.37262 9.0195,2.0712 3.4106,3.4096 3.4106,8.9345 0,12.345 -3.4111,3.4116 -8.936,3.4116 -12.349,0 -2.5645,-2.5665 -3.1988,-6.3345 -1.8999,-9.4942 l -11.777,-11.777 -0.001,30.991 c 0.8315,0.41162 1.6162,0.961 2.3091,1.6509 3.4096,3.4092 3.4096,8.9331 0,12.348 -3.4106,3.4091 -8.938,3.4091 -12.345,0 -3.4101,-3.4146 -3.4101,-8.9385 0,-12.348 0.84275,-0.84125 1.8179,-1.478 2.8584,-1.9048 v -31.279 c -1.041,-0.425 -2.015,-1.057 -2.859,-1.905 -2.583,-2.581 -3.2051,-6.372 -1.8804,-9.5439 l -12.916,-12.918 -34.106,34.105 c -2.8657,2.867 -2.8657,7.513 0,10.378 l 49.742,49.739006 c 2.8638,2.8648 7.5082,2.8648 10.376,0 l 49.512,-49.504006 c 2.8648,-2.8662 2.8648,-7.5136 0,-10.379" style="fill:#777" /> </g> </svg></a>
-
- </li><li class="about_bar"><a href="https://mastodon.xyz/@ache">
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"> <g transform="scale(0.08)"> <path fill="#777" d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915" /> <path fill="#fff" d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675"/> </g> </svg></a>
- </li></ul> </nav><nav><ul><li class="sommaire_blien"><a href="/">Accueil</a></li><li class="sommaire_blien"><a href="http://git.ache.one/">Git</a></li><li class="sommaire_blien"><a href="/contact/">Contact</a></li></ul></nav></aside>
- <article id="contenu" role="article"><object type="image/svg+xml" data="/res/DuckDuckGo_Logo.svg" style="float:left;width:100px;height:100px;"><img src="/res/DuckDuckGo_Logo.png" alt="Logo Article"/><p>/res/DuckDuckGo_Logo.svg</p></object><header><h1 id="contenu_top2">DuckDuckGo, Google en mieux ?</h1><p>Post&eacute; le <time datetime="2012-04-13">13/04/2012</time></p></header>
- <section>
- <div id="intro">
- <br />
- Depuis un certain temps d&eacute;j&agrave;, Google ne se consacre plus enti&egrave;rement &agrave; son moteur de recherche. En effet, la firme est d&eacute;j&agrave; bien implent&eacute;e dans la plupart des pays occidentaux o&ugrave; elle est le site le plus visit&eacute;. Mais la concurrence, elle, s'est d&eacute;velopp&eacute;e. Les moteurs de recherches tels que DuckDuckGo &eacute;voluent avec le temps, jusqu'&agrave; devenir plus pratique et ergonomique que Google.<br />
- <p>
- DuckDuckGo est un moteur de recherche assez jeune mais qui a beaucoup d'avenir. En effet, il allie rapidit&eacute; et fonctionnalit&eacute;s innovantes, tout en conservant la vie priv&eacute;e de l'utilisateur</p>
- <br />
- </div>
- <div class="lireLaSuite"><a href="/article/duckduckgo_google_en_mieux.html">Lire la suite</a></div>
- </section>
- </article>
- </body></html>
diff --git a/index.m4 b/index.m4
new file mode 100644
index 0000000..cb65624
--- /dev/null
+++ b/index.m4
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+
+ <!-- HEADERS -->
+include(headers.htm)
+
+ <body>
+include(left.htm)
+ <!-- Article -->
+include(articles.htm)
+ </body></html>
diff --git a/left.m4 b/left.m4
new file mode 100644
index 0000000..7f8ed44
--- /dev/null
+++ b/left.m4
@@ -0,0 +1,27 @@
+<aside id="side-bar">
+include(res/acheLogo.svg)
+
+ <h2> Ache </h2>
+ <div id="desc"> Étudiant en Math-Info <br /> <span id="about">GNU\Linux, C, C++, Python, Math, ... <br /> </span></div>
+ <nav>
+ <ul>
+ <li class="about_bar"><a href="https://twitter.com/arobase_che">
+include(res/twitterLogo.svg)
+ </a></li>
+ <li class="about_bar"><a href="http://git.ache.one">
+include(res/gitLogo.svg)
+ </a></li>
+ <li class="about_bar"><a href="https://mastodon.xyz/@ache">
+include(res/mastoLogo.svg)
+ </a></li>
+ </ul>
+ </nav>
+ <nav>
+ <ul>
+ <li class="sommaire_blien"><a href="/">home</a>
+ </li><li class="sommaire_blien"><a href="http://git.ache.one/">git</a>
+ </li><li class="sommaire_blien"><a href="/contact/">contact</a>
+ </li>
+ </ul>
+ </nav>
+</aside>
diff --git a/makefile b/makefile
new file mode 100644
index 0000000..b9e9794
--- /dev/null
+++ b/makefile
@@ -0,0 +1,58 @@
+
+ALL_ARTICLES=$(wildcard article/*.md)
+ALL_ARTICLES_OUT=$(ALL_ARTICLES:.md=.html)
+ALL_ARTICLES_INTRO_OUT=$(ALL_ARTICLES:.md=_intro.html)
+BASE_HTML=left.htm headers.htm articles.htm
+
+all: $(ALL_ARTICLES_OUT) index.html bin/articleFilter bin/introFilter clean
+
+
+bin/articleFilter: src/articleFilter.hs src/Id.hs
+ mkdir -p bin
+ mkdir -p /tmp/articleFilter
+ ghc -dynamic $< -isrc -outputdir /tmp/articleFilter -o $@
+
+bin/introFilter: src/introFilter.hs src/Id.hs
+ mkdir -p bin
+ mkdir -p /tmp/introFilter
+ ghc -dynamic $< -isrc -outputdir /tmp/introFilter -o $@
+
+
+article/%.html: article/%.md bin/articleFilter $(BASE_HTML)
+ pandoc --filter bin/articleFilter $< > ${@:.html=.htm}
+ cat ${@:.html=.htm} | m4 > $@
+
+NUMBERS = 1 2 3 4
+
+article/%_intro.html: article/%.md bin/introFilter
+ pandoc --filter bin/introFilter $< > ${@:.html=.htm}
+ cat ${@:.html=.htm} | m4 -D linkFileNameArticle=${<:.md=.html} > $@
+
+articles.htm: $(ALL_ARTICLES_INTRO_OUT) bin/introFilter
+ cat $(ALL_ARTICLES_INTRO_OUT) > $@
+
+
+
+index.html: index.m4 $(BASE_HTML)
+ m4 $< > $@
+
+left.htm: res/twitterLogo.svg res/mastoLogo.svg res/gitLogo.svg res/acheLogo.svg left.m4
+ m4 left.m4 > left.htm
+
+headers.htm: headers.m4
+ m4 headers.m4 > headers.htm
+
+clean:
+ rm -f $(BASE_HTML)
+ rm -f articles.html
+ rm -f $(ALL_ARTICLES:.md=_intro.htm)
+ rm -f $(ALL_ARTICLES:.md=.htm)
+
+mrproper:
+ rm -f bin/*
+ rm -f index.html
+ rm -f $(ALL_ARTICLES_OUT)
+ rm -f $(ALL_ARTICLES_INTRO_OUT)
+
+
+
diff --git a/res/acheLogo.svg b/res/acheLogo.svg
new file mode 100644
index 0000000..a77efe5
--- /dev/null
+++ b/res/acheLogo.svg
@@ -0,0 +1,27 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" id="svg">
+ <g transform="scale(0.125)">
+ <rect width="100" height="100" x="50" y="300" id="rect1" style="fill:#000" />
+ <rect width="100" height="100" x="50" y="400" id="rect2" style="fill:#000" />
+ <rect width="100" height="100" x="50" y="500" id="rect3" style="fill:#000" />
+ <rect width="100" height="100" x="50" y="600" id="rect4" style="fill:#000" />
+ <rect width="100" height="100" x="150" y="600" id="rect5" style="fill:#000" />
+ <rect width="100" height="100" x="250" y="600" id="rect6" style="fill:#000" />
+ <rect width="100" height="100" x="350" y="600" id="rect7" style="fill:#000" />
+ <rect width="100" height="100" x="450" y="600" id="rect8" style="fill:#000" />
+ <rect width="100" height="100" x="550" y="600" id="rect9" style="fill:#000" />
+ <rect width="100" height="100" x="650" y="600" id="rect10" style="fill:#000" />
+ <rect width="100" height="100" x="650" y="500" id="rect11" style="fill:#000" />
+ <rect width="100" height="100" x="650" y="400" id="rect12" style="fill:#000" />
+ <rect width="100" height="100" x="650" y="300" id="rect13" style="fill:#000" />
+ <rect width="100" height="100" x="150" y="700" id="rect14" style="fill:#000" />
+ <rect width="100" height="100" x="550" y="700" id="rect15" style="fill:#000" />
+ <rect width="100" height="100" x="250" y="300" id="rect16" style="fill:#000" />
+ <rect width="100" height="100" x="450" y="300" id="rect17" style="fill:#000" />
+ <rect width="100" height="100" x="150" y="200" id="rect18" style="fill:#000" />
+ <rect width="100" height="100" x="550" y="200" id="rect19" style="fill:#000" />
+ <rect width="100" height="100" x="250" y="100" id="rect20" style="fill:#000" />
+ <rect width="100" height="100" x="450" y="100" id="rect21" style="fill:#000" />
+ <rect width="100" height="100" x="350" y="000" id="rect22" style="fill:#000" />
+ </g>
+ </svg>
+
diff --git a/res/gitLogo.svg b/res/gitLogo.svg
new file mode 100644
index 0000000..4374097
--- /dev/null
+++ b/res/gitLogo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"> <g transform="scale(0.18)"> <path d="M 111.78,51.976994 62.035,2.2380937 c -2.8622,-2.86480012 -7.5082,-2.86480012 -10.374,0 l -10.329,10.3300003 13.102,13.102 c 3.0459,-1.0284 6.5371,-0.33888 8.9639,2.0884 2.4394,2.4424 3.124,5.9634 2.0698,9.0195 l 12.628,12.628 c 3.0551,-1.0528 6.58,-0.37262 9.0195,2.0712 3.4106,3.4096 3.4106,8.9345 0,12.345 -3.4111,3.4116 -8.936,3.4116 -12.349,0 -2.5645,-2.5665 -3.1988,-6.3345 -1.8999,-9.4942 l -11.777,-11.777 -0.001,30.991 c 0.8315,0.41162 1.6162,0.961 2.3091,1.6509 3.4096,3.4092 3.4096,8.9331 0,12.348 -3.4106,3.4091 -8.938,3.4091 -12.345,0 -3.4101,-3.4146 -3.4101,-8.9385 0,-12.348 0.84275,-0.84125 1.8179,-1.478 2.8584,-1.9048 v -31.279 c -1.041,-0.425 -2.015,-1.057 -2.859,-1.905 -2.583,-2.581 -3.2051,-6.372 -1.8804,-9.5439 l -12.916,-12.918 -34.106,34.105 c -2.8657,2.867 -2.8657,7.513 0,10.378 l 49.742,49.739006 c 2.8638,2.8648 7.5082,2.8648 10.376,0 l 49.512,-49.504006 c 2.8648,-2.8662 2.8648,-7.5136 0,-10.379" style="fill:#777" /> </g> </svg>
diff --git a/res/gith.svg b/res/gith.svg
deleted file mode 100755
index 52f1543..0000000
--- a/res/gith.svg
+++ /dev/null
@@ -1,2 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
-<g transform="scale(0.02)"><path d="M0 500.288q0 129.32 62.952 234.728 62.952 108.824 170.8 171.288t234.728 62.464q127.368 0 235.704 -62.464 108.336 -62.952 170.556 -171.044t62.22 -234.972q0 -128.832 -62.464 -235.704 -62.952 -108.336 -171.044 -170.556t-234.972 -62.22q-129.32 0 -234.728 62.952 -108.824 62.952 -171.288 170.8t-62.464 234.728zm78.08 0q0 -78.08 30.744 -150.792t83.936 -125.416q53.192 -53.192 125.416 -83.692t150.304 -30.5 150.792 30.5 125.904 83.692q52.704 52.704 83.204 125.416t30.5 150.792q0 83.936 -34.404 160.064t-96.624 131.516 -142.252 80.276v-137.616q0 -51.24 -41.968 -80.032 102.968 -9.272 150.548 -52.216t47.58 -136.152q0 -72.224 -44.408 -121.512 8.784 -26.352 8.784 -50.752 0 -36.112 -16.592 -66.368 -32.696 0 -58.56 10.736t-63.44 37.088q-45.384 -10.248 -93.696 -10.248 -55.144 0 -102.968 11.224 -36.6 -26.84 -63.196 -37.82t-60.268 -10.98q-16.104 30.744 -16.104 66.368 0 25.376 8.296 51.24 -44.408 47.824 -44.408 121.024 0 93.208 47.336 135.664t151.768 52.216q-27.816 18.544 -38.552 54.168 -23.912 8.296 -49.776 8.296 -19.52 0 -33.672 -8.784 -4.392 -2.44 -8.052 -5.124t-7.564 -6.588 -6.344 -6.1 -6.344 -7.564 -5.124 -6.832 -5.856 -7.808 -5.124 -6.832q-22.936 -30.256 -54.656 -30.256 -17.08 0 -17.08 7.32 0 2.928 8.296 9.76 15.616 13.664 16.592 14.64 11.712 9.272 13.176 11.712 14.152 17.568 21.472 38.552 27.328 61 93.696 61 10.736 0 41.968 -4.88v103.456q-80.032 -24.888 -142.252 -80.276t-96.624 -131.516 -34.404 -160.064z" style="fill: #777;"/></g></svg>
diff --git a/res/mastoLogo.svg b/res/mastoLogo.svg
new file mode 100644
index 0000000..2041502
--- /dev/null
+++ b/res/mastoLogo.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"> <g transform="scale(0.08)"> <path fill="#777" d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915" /> <path fill="#fff" d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675"/> </g> </svg>
diff --git a/res/tw.svg b/res/tw.svg
deleted file mode 100755
index 3d81a91..0000000
--- a/res/tw.svg
+++ /dev/null
@@ -1,21 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
-<g transform="translate(-16,-16)scale(0.053)">
-<path d="
-M 630, 425
-A 195, 195 0 0 1 331, 600
-A 142, 142 0 0 0 428, 570
-A 70, 70 0 0 1 370, 523
-A 70, 70 0 0 0 401, 521
-A 70, 70 0 0 1 344, 455
-A 70, 70 0 0 0 372, 460
-A 70, 70 0 0 1 354, 370
-A 195, 195 0 0 0 495, 442
-A 67, 67 0 0 1 611, 380
-A 117, 117 0 0 0 654, 363
-A 65, 65 0 0 1 623, 401
-A 117, 117 0 0 0 662, 390
-A 65, 65 0 0 1 630, 425
-Z"
-style="fill:#777;"/>
-</g>
-</svg>
diff --git a/res/twit.svg b/res/twit.svg
deleted file mode 100755
index 2662a80..0000000
--- a/res/twit.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="171.5054" height="139.37839" id="svg2" version="1.1" inkscape:version="0.48.4 r9939" sodipodi:docname="Twitter_bird_logo_2012.svg">
- <defs id="defs4"/>
- <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="3.7200571" inkscape:cx="101.29413" inkscape:cy="50.181142" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1280" inkscape:window-height="962" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" fit-margin-top="0" fit-margin-left="0" fit-margin-right="0" fit-margin-bottom="0"/>
- <metadata id="metadata7">
- <rdf:RDF>
- <cc:Work rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(-282.32053,-396.30734)">
- <path style="fill:#2aa9e0" inkscape:connector-curvature="0" id="path5" d="m 453.82593,412.80619 c -6.3097,2.79897 -13.09189,4.68982 -20.20852,5.54049 7.26413,-4.35454 12.84406,-11.24992 15.47067,-19.46675 -6.79934,4.03295 -14.3293,6.96055 -22.34461,8.53841 -6.41775,-6.83879 -15.56243,-11.111 -25.68298,-11.111 -19.43159,0 -35.18696,15.75365 -35.18696,35.18525 0,2.75781 0.31128,5.44359 0.91155,8.01875 -29.24344,-1.46723 -55.16995,-15.47582 -72.52461,-36.76396 -3.02879,5.19662 -4.76443,11.24048 -4.76443,17.6891 0,12.20777 6.21194,22.97747 15.65332,29.28716 -5.76773,-0.18265 -11.19331,-1.76565 -15.93716,-4.40083 -0.004,0.14663 -0.004,0.29412 -0.004,0.44248 0,17.04767 12.12889,31.26806 28.22555,34.50266 -2.95247,0.80436 -6.06101,1.23398 -9.26989,1.23398 -2.2673,0 -4.47114,-0.22124 -6.62011,-0.63114 4.47801,13.97857 17.47214,24.15143 32.86992,24.43441 -12.04227,9.43796 -27.21366,15.06335 -43.69965,15.06335 -2.84014,0 -5.64082,-0.16722 -8.39349,-0.49223 15.57186,9.98421 34.06703,15.8094 53.93768,15.8094 64.72024,0 100.11301,-53.61524 100.11301,-100.11387 0,-1.52554 -0.0343,-3.04251 -0.10204,-4.55261 6.87394,-4.95995 12.83891,-11.15646 17.55618,-18.21305 z"/>
- </g>
-</svg> \ No newline at end of file
diff --git a/res/twitterLogo.svg b/res/twitterLogo.svg
new file mode 100644
index 0000000..19ae1a5
--- /dev/null
+++ b/res/twitterLogo.svg
@@ -0,0 +1,18 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20">
+ <g transform="translate(-16,-16)scale(0.053)">
+ <path d="
+ M 630, 425
+ A 195, 195 0 0 1 331, 600
+ A 142, 142 0 0 0 428, 570
+ A 70, 70 0 0 1 370, 523
+ A 70, 70 0 0 0 401, 521
+ A 70, 70 0 0 1 344, 455
+ A 70, 70 0 0 0 372, 460
+ A 70, 70 0 0 1 354, 370
+ A 195, 195 0 0 0 495, 442
+ A 67, 67 0 0 1 611, 380
+ A 117, 117 0 0 0 654, 363
+ A 65, 65 0 0 1 623, 401
+ A 117, 117 0 0 0 662, 390
+ A 65, 65 0 0 1 630, 425
+ Z" style="fill:#777;"/></g></svg>
diff --git a/res/wtf.svg b/res/wtf.svg
deleted file mode 100755
index e264a77..0000000
--- a/res/wtf.svg
+++ /dev/null
@@ -1,28 +0,0 @@
-<svg style="opacity: 1;" version="1.1" id="snap-logo" class="insert" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="250px" height="250px">
- <defs>
- <linearGradient id="bottom_1_" gradientUnits="userSpaceOnUse" x1="196" y1="485.6281" x2="196" y2="732.5812" gradientTransform="matrix(1 0 0 1 -71 -486.5)">
- <stop offset="0" stop-color="#002E3B"></stop>
- <stop offset="1" stop-color="#002639"></stop>
- </linearGradient>
- <radialGradient id="right_2_" cx="146.3819" cy="449.8799" r="408.7811" gradientTransform="matrix(1 0 0 1 -71 -486.5)" gradientUnits="userSpaceOnUse">
- <stop offset="0" stop-color="#00BC85"></stop>
- <stop offset="1" stop-color="#149D91"></stop>
- </radialGradient>
- <radialGradient id="left_1_" cx="139.0562" cy="454.2622" r="507.5908" gradientTransform="matrix(1 0 0 1 -71 -486.5)" gradientUnits="userSpaceOnUse">
- <stop offset="0" stop-color="#004473"></stop>
- <stop offset="1" stop-color="#00345F"></stop>
- </radialGradient>
- <linearGradient id="top_1_" gradientUnits="userSpaceOnUse" x1="195.922" y1="486.8864" x2="195.922" y2="732.5903" gradientTransform="matrix(1 0 0 1 -71 -486.5)">
- <stop offset="0" stop-color="#002E3B"></stop>
- <stop offset="1" stop-color="#002639"></stop>
- </linearGradient>
- </defs>
- <polygon transform="matrix(1,0,0,1,0,0)" style="opacity: 1;" id="bottom" fill="url(#bottom_1_)" stroke="url(#bottom_1_)" points="124.913,210.751 89.063,193.264 89.103,193.245 89.093,193.24
- 51,211.82 124.941,247.884 199,211.9 160.771,192.962 "></polygon>
- <polygon transform="matrix(1,0,0,1,0,0)" style="opacity: 1;" id="right" fill="url(#right_2_)" stroke="url(#right_2_)" points="198.996,138.632 198.996,38.123 165.596,58.995 165.596,117.758
- 165.596,117.758 165.596,117.758 51.091,174.781 51.091,211.945 "></polygon>
- <polygon transform="matrix(1,0,0,1,0,0)" style="opacity: 1;" id="left" fill="url(#left_1_)" stroke="url(#left_1_)" points="199,211.912 199,211.912 199,174.746 84.498,117.723 84.498,58.96
- 51.096,38.088 51.096,138.597 "></polygon>
- <polygon transform="matrix(1,0,0,1,0,0)" style="opacity: 1;" id="top" fill="url(#top_1_)" stroke="url(#top_1_)" points="84.396,58.904 84.396,58.892 124.939,39.118 165.485,58.892
- 198.844,38.046 124.912,1.985 51,38.035 51,38.067 84.368,58.918 "></polygon>
- <desc>Created with Snap</desc></svg>
diff --git a/src/Id.hs b/src/Id.hs
new file mode 100644
index 0000000..adc7e2e
--- /dev/null
+++ b/src/Id.hs
@@ -0,0 +1,19 @@
+module Id
+( newId,
+ nextId
+) where
+
+{-
+ -
+ - Écrit par Hédy GIRAUDEAU
+ - 27/07/17
+ -
+-}
+
+import Data.IORef
+import Data.Functor
+
+type Id_number a = IORef a
+
+newId = (newIORef 0)
+nextId cnt = modifyIORef cnt (+1) >> (+0) <$> readIORef cnt
diff --git a/src/Secret.hs b/src/Secret.hs
new file mode 100644
index 0000000..7b428ce
--- /dev/null
+++ b/src/Secret.hs
@@ -0,0 +1,46 @@
+module Secret
+( to_secret
+) where
+
+
+{-
+ -
+ - Écrit par Hédy GIRAUDEAU
+ - 27/07/17
+ -
+-}
+
+
+
+import Text.Pandoc
+import Text.Pandoc.JSON
+
+
+firstLine :: [Inline] -> ([Inline],[Inline])
+firstLine [] = ([],[])
+firstLine ((SoftBreak) : x) = ([], x)
+firstLine (x:q) = ([x] ++ y, z) where (y,z) = (firstLine q)
+
+
+
+
+to_secret (BlockQuote (Para (Str(first) : inlines) : blocks)) =
+ Div
+ ("", ["secret"], [])
+ ([
+ RawBlock (Format "html")
+ (start_detail ++ start_summary)
+ ] ++ [Plain $ fLine] ++ [
+ RawBlock (Format "html")
+ (end_summary)
+ ] ++ [ Plain rest ]++ blocks ++ [
+ RawBlock (Format "html")
+ (end_detail)
+ ]
+ )
+ where start_detail = "<details>"
+ start_summary = "<summary>"
+ end_detail = "</details>"
+ end_summary = "</summary>"
+ (fLine, rest) = firstLine inlines
+
diff --git a/src/articleFilter.hs b/src/articleFilter.hs
new file mode 100644
index 0000000..a94cd3d
--- /dev/null
+++ b/src/articleFilter.hs
@@ -0,0 +1,55 @@
+import Text.Pandoc
+import Text.Pandoc.JSON
+import Control.Monad.State
+import Id
+
+
+{-
+ - Écrit par Hédy GIRAUDEAU
+ - 27/07/17
+-}
+extractStart :: [Inline] -> ([Inline],[Inline])
+extractStart [] = ([],[])
+extractStart ((SoftBreak):q) = ((SoftBreak):y, z) where (y,z) = (extractStart q)
+extractStart ((LineBreak):q) = ((LineBreak):y, z) where (y,z) = (extractStart q)
+extractStart (img@(Image _ _ _):q) = (img: y, z) where (y,z) = (extractStart q)
+extractStart x = ([],x)
+
+
+
+
+transformBlock cnt ( hdF@(Header 1 _ inlines) : paraF@(Para inlinesP) : blocks ) =
+ return (( (RawBlock (Format "html")
+ ( start_header )
+ ) : hdF :
+ (RawBlock (Format "html")
+ ( end_header )
+ ) : (Plain inlinesP) :
+ (RawBlock (Format "html")
+ ( end_intro )
+ ) : blocks
+ ) ++ [ (RawBlock (Format "html")
+ (end_article) )
+ ])
+ where start_header = "<header>"
+ end_header = "</header><section class=\"entry-content clearfix\" >"
+ end_intro = ""
+ end_article = "</section>"
+
+--transformBlock _ ((Para inlines):tl) =
+-- return ((Plain plainInline):(Para paraInline:tl))
+-- where (plainInline, paraInline) = extractStart(inlines)
+
+
+transformBlock _ x = return x
+
+
+bar :: Pandoc -> IO Pandoc
+bar x = do cnt <- newId
+ bottomUpM (transformBlock cnt) x
+
+main :: IO()
+main = toJSONFilter bar
+
+
+-- vim:set et:
diff --git a/src/introFilter.hs b/src/introFilter.hs
new file mode 100644
index 0000000..93603c0
--- /dev/null
+++ b/src/introFilter.hs
@@ -0,0 +1,51 @@
+import Text.Pandoc
+import Text.Pandoc.JSON
+import Control.Monad.State
+import Id
+
+
+{-
+ - Écrit par Hédy GIRAUDEAU
+ - 27/07/17
+-}
+firstPara :: [Block] -> [Block]
+firstPara [] = []
+firstPara (p@(Para x):blocks) = [(Para x)]
+firstPara (x:blocks) = (firstPara blocks)
+
+setMignature (id, classes, mapsAttrib) = (id, "miniature":classes, mapsAttrib)
+
+
+purgePara (Para (Image x y (trgt,title):_)) = (Para [(Image (setMignature x) y ("article/" ++ trgt, title))])
+purgePara (Para (x:t)) = purgePara (Para t)
+purgePara (Para []) = (Para [])
+
+transformBlock cnt ( hdF@(Header 1 _ inlines) : paraF@(Para inlinesP) : blocks ) =
+ return (( (RawBlock (Format "html")
+ ( start_header )
+ ) : hdF :
+ (RawBlock (Format "html")
+ ( end_header )
+ ) : purgePara(paraF) : firstPara(blocks)
+ ) ++ [ (RawBlock (Format "html")
+ (end_article) )
+ ])
+ where start_header = "<header>"
+ end_header = "</header><section class=\"entry-content clearfix\" >"
+ end_intro = ""
+ end_article = "</section>"
+
+
+
+transformBlock _ x = return x
+
+
+bar :: Pandoc -> IO Pandoc
+bar x = do cnt <- newId
+ bottomUpM (transformBlock cnt) x
+
+main :: IO()
+main = toJSONFilter bar
+
+
+-- vim:set et: