1
0
mirror of https://github.com/Tygs/0bin.git synced 2023-08-10 21:13:00 +03:00

Renerated the HTML documentation

This commit is contained in:
sametmax 2013-04-22 23:22:33 +02:00
parent 33d94fdbbd
commit 353fac415a
48 changed files with 11359 additions and 218 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -16,7 +16,7 @@ An Apache setup is still much more robust and secure than an easy installation.
Une installation apache est aussi beaucoup plus solide et sécurisé qu'une
installation facile. You'll benefit from having:
- the possiblity to have several projects listening to the port 80;
- the possibility to have several projects listening to the port 80;
- several Apache module at your disposal (like requests throttling);
- Apache robustness in front end: it's secure, and there is much less chance
it will crash under heavy load;
@ -97,4 +97,4 @@ CGI
===
You can also run 0bin using CGI, but infortunaly we didn't have time to cover
it yet. Please contact us if you ever get the need to use it.
it yet. Please contact us if you ever get the need to use it.

View File

@ -18,7 +18,7 @@ Just type::
===============================
- Make sure you have Python 2.6 or 2.7 (`python --version`)
- Download the last zip of the sources code.
- Download the last `zip of the source code <https://github.com/sametmax/0bin/zipball/master>`_
- Extract all of it where you wish the site to be stored.
- Go to the extracted files.
- Run with the admin rights::

View File

@ -45,7 +45,8 @@ Other features
- copy paste to clipboard in a click;
- get paste short URL in a click;
- own previous pastes history;
- visual hash of a paste to easily tell it appart from others in a list.
- visual hash of a paste to easily tell it apart from others in a list;
- `optional command-line tool`_ to encrypt and paste data from shell or scripts.
Technologies used
==================
@ -57,6 +58,7 @@ Technologies used
- Bootstrap_, the Twitter HTML5/CSS3 framework
- VizHash.js_ to create visual hashes from pastes
- Cherrypy_ (server only)
- `node.js`_ (for optional command-line tool only)
Known issues
@ -84,4 +86,6 @@ What does 0bin not implement?
.. _Bootstrap: http://twitter.github.com/bootstrap/
.. _VizHash.js: https://github.com/sametmax/VizHash.js
.. _Cherrypy: http://www.cherrypy.org/ (server only)
.. _is not worth it: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions
.. _node.js: http://nodejs.org/
.. _optional command-line tool: ./zerobinpaste_tool
.. _is not worth it: http://stackoverflow.com/questions/201705/how-many-random-elements-before-md5-produces-collisions

View File

@ -24,7 +24,7 @@ Therefor there are two steps:
You will benefit from having:
- the possiblity to have several projects listening to the port 80;
- the possibility to have several projects listening to the port 80;
- several Apache module at your disposal (like requests throttling);
- Apache robustness in front end: it's secure, and there is much less chance
it will crash under heavy load;
@ -40,7 +40,7 @@ Run 0bin as usual, but this time make it listen to a local port and host. E.G::
zerobin --host 127.0.0.1 --port 8000
In PHP, when you edit a file, the changes are immediatly visible. In Python,
In PHP, when you edit a file, the changes are immediately visible. In Python,
the whole code is often loaded in memory for performance reasons. This means
you have to restart the Python process to see the changes effect. Having a
separate process let you do this without having to restart the server.

View File

@ -159,7 +159,7 @@ List of absolute path to directories containing templates that 0bin uses to
generate the web site pages. The first list items have priotity on the later.
If you wish to use your own templates, add the directory containing them
at the begining of the list::
at the beginning of the list::
from zerobin.defauls_settings import TEMPLATE_DIRS
@ -225,4 +225,4 @@ Valeur approximative de limite de taille d'un paste.
Default = 500000 octets (500 ko)
Command line equivalent: None
Command line equivalent: None

View File

@ -0,0 +1,100 @@
==============================
zerobinpaste command-line tool
==============================
zerobinpaste is a simple CLI tool (analogous to pastebinit or wgetpaste) to use
with files or shell redirection in terminal or simple scripts.
Example use-cases might look like::
% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root
Produced links can then be copy-pasted to some IRC channel or used in whatever
other conceivable way.
Tool does encryption by itself on the client machine and key (after hashmark) is
never sent to server or anywhere but the tool's stdout stream (e.g. terminal).
Tool has to be built with `node.js`_ separately (see below).
Usage
=====
At least the pastebin site (main URL where you'd paste stuff with the browser)
has to be specified for the tool to use either via -u (--url) option (can be
simplified with shell alias - e.g. ``alias zp='zerobinpaste -u http://some.0bin.site``)
or in the "~/.zerobinpasterc" configuration file (json format).
| Non-option arguments are interpreted as files to upload/paste contents of.
| If no arguments are specified, data to paste will be read from stdin stream.
Simple configuration file may look like this:
{"url": "http://some.0bin.site"}
Any options (in the long form, e.g. "url" for --url above) that are allowed on
the command-line can be specified there.
Run the tool with -h or --help option to see full list of supported parameters.
Build / Installation
====================
In essence:
0bin% cd tools
0bin/tools% make
...
0bin/tools% cp zerobinpaste ~/bin # install to PATH
"npm" binary (packaged and installed with node.js) is required to pull in build
dependencies, if necessary, and "node" binary is required for produced binary to
run.
Use "make" in "tools" path to produce non-minified runnable "zerobinpaste"
script there.
``make ugly`` command can be used instead of ``make`` to create "minified"
version (using/installing uglifyjs_, about 25% smaller in size).
Resulting "zerobinpaste" script requires only node.js ("node" binary) installed
to run and can be placed in any of the PATH dirs (e.g. "~/bin",
"/usr/local/bin") to be run just as "zerobinpaste".
Why node.js and not python
==========================
Unfortunately, it's fairly complex and unreliable to replicate non-trivial and
undocumented encryption protocol that SJCL_ convenience methods employ, and any
mistake in encryption is guaranteed to produce unreadable paste.
Current implementation uses same JavaScript code (and V8 node.js engine) that
browsers do, hence can be fairly simple and robust.
Future development plans include supporting configurable, less complex and more
widespread encryption schemas, allowing for simplier non-javascript client as
well.
See `related pull request`_ for more details.
.. _node.js: http://nodejs.org/
.. _uglifyjs: https://github.com/mishoo/UglifyJS
.. _SJCL: http://crypto.stanford.edu/sjcl/
.. _related pull request: https://github.com/sametmax/0bin/pull/39

View File

@ -33,8 +33,8 @@ Les serveurs Web Python modernes fonctionnent tous de la même manière, en suiv
une norme d'interfaçage: WSGI.
C'est la solution la plus performante, et celle recommandée. Mais elle demande
l'installation du modle Apache mod_wsgi. Si vous ne savez pas comment faire,
ou si vous ne pouvez pas le faire (par exemple sur un hébergement mutualisé
l'installation du model Apache mod_wsgi. Si vous ne savez pas comment faire,
ou si vous ne pouvez pas le faire (par example sur un hébergement mutualisé
qui ne le propose pas), il vous faudra choisir l'installation CGI.
Premièrement, assurez-vous d'avoir mod_wsgi installé et chargé (en tant qu'admin)::

View File

@ -19,7 +19,7 @@ Installation en 30 secondes (pour tous)
=======================================
- Assurez-vous d'avoir Python 2.6 ou 2.7 (`python --version`)
- Télécharger le dernier zip du code source.
- Télécharger le dernier `zip du code source <https://github.com/sametmax/0bin/zipball/master>`_.
- Décompressez tous les fichiers là où vous souhaitez mettre le site.
- Allez dans les dossiers extraits.
- Lancez avec les droits admin::
@ -40,7 +40,7 @@ solutions.
*Pour un petit site:*
Lancer simplement 0bin en processus shell d'arrière plan. Exemple sous GNU/Linux::
Lancer simplement 0bin en processus shell d'arrière plan. Example sous GNU/Linux::
nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &

View File

@ -0,0 +1,96 @@
=======================================
Outil en ligne de commande zerobinpaste
=======================================
zerobinpaste est un simple outil CLI (similaire à pastebinit ou wgetpaste) à utiliser
avec des fichiers ou des redirection shell dans le terminal ou des scripts simples.
Exemple de cas d'utilisation::
% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root
Les liens produits peuvent être ensuite copier-coller sur un channel IRC
ou autre.
L'outil produit le chiffrement lui-même sur la machine et la clé (après le hash)
n'est jamais envoyée au serveur ou nul par ailleurs excepté la sortie standard
de l'outil (ex: le terminal).
L'outil doit être buildé avec `node.js`_ séparément (voir plus bas).
Usage
=====
Au minimum il faut préciser le site pastebin (l'url principal d'où on posterait
dans le navigateur) doit être spécifié à l'outil via l'option -u (--url) (on peut
le simplifier avec un alias shell - ex: ``alias zp='zerobinpaste -u http://some.0bin.site``)
ou dans le fichier de configuration "~/.zerobinpasterc" (format json).
| Les arguments positionels sont interprétés comme des fichiers à uploader et chiffrer.
| Si aucun argument n'est passé, le script tentera de lire stdin.
Le fichier de configuration le plus simple pourrait ressembler à celà:
{"url": "http://some.0bin.site"}
Toute option (dans sa forme longue, ex: "url pour --url) utilisable en ligne de commande
peut être spécifié ici.
Lancez l'outil avec -h ou --help pour voir la liste des paramètres supportés.
Build / Installation
====================
En bref:
0bin% cd tools
0bin/tools% make
...
0bin/tools% cp zerobinpaste ~/bin # install to PATH
La commande "npm" (packagé and installé avec node.js) est requise pour télécharger
les dépendances indispensables à la production de l'éxécutable.
Utilisez "make" dans le dossier "tools" pour produire une version non-minifié" de "zerobinpaste".
La commande ``make ugly`` peut être utilisé à la place de ``make`` pour créer une version "minified"
(requière l'installation de uglifyjs_, script produit environ 25% plus petit en taille).
Le script "zerobinpaste" ainsi produit seulement besoin de node.js (et la commande "node") pour
s'éxcuter et peut être placé n'importe où dans le PATH système (ex : "~/bin", "/usr/local/bin")
afin d'être exécuté en tapant simplement "zerobinpaste".
Pourquoi node.js et pas python
==============================
Malheureusement, il est assez difficile et peu fiable de répliquer un protocole
chiffrement non trivial et non documenté tel que celui de certaines méthodes
de SJCL_, et la moindre erreur garantie de produire une paste illisible.
L'implémentation actuelle utilise le même code Javascript (via le moteur V8 de node.js)
que le navigateur, du coup il est simple et robuste.
Il est prévu de supporter plus tard un schéma de chiffrement plus configurable, moins
complexe et plus courant, permettant à des clients non-javascript de fonctioner également.
Voir le `pull request concerné`_ pour plus de détails.
.. _node.js: http://nodejs.org/
.. _uglifyjs: https://github.com/mishoo/UglifyJS
.. _SJCL: http://crypto.stanford.edu/sjcl/
.. _pull request concerné: https://github.com/sametmax/0bin/pull/39

View File

@ -22,10 +22,11 @@
| en/using_supervisor | fr/using_supervisor |
| en/theming | fr/theming |
| en/options | fr/options |
| en/zerobinpaste_tool | fr/zerobinpaste_tool |
| | |
|`Report a bug`_ |`Signaler un bug`_ |
+-------------------------+--------------------------------+
.. _Signaler un bug: https://github.com/sametmax/0bin/issues
.. _Report a bug: <https://github.com/sametmax/0bin/issues>
.. _Report a bug: https://github.com/sametmax/0bin/issues

File diff suppressed because it is too large Load Diff

View File

@ -13,11 +13,11 @@
.highlight .gr { color: #FF0000 } /* Generic.Error */
.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #00A000 } /* Generic.Inserted */
.highlight .go { color: #303030 } /* Generic.Output */
.highlight .go { color: #333333 } /* Generic.Output */
.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #0040D0 } /* Generic.Traceback */
.highlight .gt { color: #0044DD } /* Generic.Traceback */
.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */

View File

@ -239,8 +239,13 @@ var Search = {
},
loadIndex : function(url) {
$.ajax({type: "GET", url: url, data: null, success: null,
dataType: "script", cache: true});
$.ajax({type: "GET", url: url, data: null,
dataType: "script", cache: true,
complete: function(jqxhr, textstatus) {
if (textstatus != "success") {
document.getElementById("searchindexloader").src = url;
}
}});
},
setIndex : function(index) {
@ -301,7 +306,7 @@ var Search = {
},
query : function(query) {
var stopwords = ["and","then","into","it","as","are","in","if","for","no","there","their","was","is","be","to","that","but","they","not","such","with","by","a","on","these","of","will","this","near","the","or","at"];
var stopwords = ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"];
// Stem the searchterms and add them to the correct list
var stemmer = new Stemmer();
@ -457,16 +462,18 @@ var Search = {
displayNextItem();
});
} else if (DOCUMENTATION_OPTIONS.HAS_SOURCE) {
$.get(DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' +
item[0] + '.txt', function(data) {
if (data != '') {
listItem.append($.makeSearchSummary(data, searchterms, hlterms));
Search.output.append(listItem);
}
listItem.slideDown(5, function() {
displayNextItem();
});
}, "text");
$.ajax({url: DOCUMENTATION_OPTIONS.URL_ROOT + '_sources/' + item[0] + '.txt',
dataType: "text",
complete: function(jqxhr, textstatus) {
var data = jqxhr.responseText;
if (data !== '') {
listItem.append($.makeSearchSummary(data, searchterms, hlterms));
}
Search.output.append(listItem);
listItem.slideDown(5, function() {
displayNextItem();
});
}});
} else {
// no source available, just display title
Search.output.append(listItem);

File diff suppressed because it is too large Load Diff

View File

@ -67,7 +67,7 @@
<p>Une installation apache est aussi beaucoup plus solide et sécurisé qu&#8217;une
installation facile. You&#8217;ll benefit from having:</p>
<ul class="simple">
<li>the possiblity to have several projects listening to the port 80;</li>
<li>the possibility to have several projects listening to the port 80;</li>
<li>several Apache module at your disposal (like requests throttling);</li>
<li>Apache robustness in front end: it&#8217;s secure, and there is much less chance
it will crash under heavy load;</li>

View File

@ -68,7 +68,7 @@ zerobin --host 0.0.0.0 --port 80 --compressed-static # as admin</pre>
<ul>
<li><p class="first">Make sure you have Python 2.6 or 2.7 (<cite>python &#8211;version</cite>)</p>
</li>
<li><p class="first">Download the last zip of the sources code.</p>
<li><p class="first">Download the last <a class="reference external" href="https://github.com/sametmax/0bin/zipball/master">zip of the source code</a></p>
</li>
<li><p class="first">Extract all of it where you wish the site to be stored.</p>
</li>

View File

@ -94,7 +94,8 @@ install even if you know nothing about Python.</p>
<li>copy paste to clipboard in a click;</li>
<li>get paste short URL in a click;</li>
<li>own previous pastes history;</li>
<li>visual hash of a paste to easily tell it appart from others in a list.</li>
<li>visual hash of a paste to easily tell it apart from others in a list;</li>
<li><a class="reference external" href="./zerobinpaste_tool">optional command-line tool</a> to encrypt and paste data from shell or scripts.</li>
</ul>
</div>
<div class="section" id="technologies-used">
@ -107,6 +108,7 @@ install even if you know nothing about Python.</p>
<li><a class="reference external" href="http://twitter.github.com/bootstrap/">Bootstrap</a>, the Twitter HTML5/CSS3 framework</li>
<li><a class="reference external" href="https://github.com/sametmax/VizHash.js">VizHash.js</a> to create visual hashes from pastes</li>
<li><a class="reference external" href="http://www.cherrypy.org/(serveronly)">Cherrypy</a> (server only)</li>
<li><a class="reference external" href="http://nodejs.org/">node.js</a> (for optional command-line tool only)</li>
</ul>
</div>
<div class="section" id="known-issues">

View File

@ -76,7 +76,7 @@ the Python server.</p>
</ul>
<p>You will benefit from having:</p>
<ul class="simple">
<li>the possiblity to have several projects listening to the port 80;</li>
<li>the possibility to have several projects listening to the port 80;</li>
<li>several Apache module at your disposal (like requests throttling);</li>
<li>Apache robustness in front end: it&#8217;s secure, and there is much less chance
it will crash under heavy load;</li>
@ -90,7 +90,7 @@ processes. It&#8217;s very handy for updates.</li>
<p>Run 0bin as usual, but this time make it listen to a local port and host. E.G:</p>
<div class="highlight-python"><pre>zerobin --host 127.0.0.1 --port 8000</pre>
</div>
<p>In PHP, when you edit a file, the changes are immediatly visible. In Python,
<p>In PHP, when you edit a file, the changes are immediately visible. In Python,
the whole code is often loaded in memory for performance reasons. This means
you have to restart the Python process to see the changes effect. Having a
separate process let you do this without having to restart the server.</p>

View File

@ -26,7 +26,7 @@
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
<link rel="next" title="Introduction" href="../fr/intro.html" />
<link rel="next" title="zerobinpaste command-line tool" href="zerobinpaste_tool.html" />
<link rel="prev" title="Theming" href="theming.html" />
</head>
<body>
@ -37,7 +37,7 @@
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../fr/intro.html" title="Introduction"
<a href="zerobinpaste_tool.html" title="zerobinpaste command-line tool"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="theming.html" title="Theming"
@ -156,7 +156,7 @@ web site.</p>
<p>List of absolute path to directories containing templates that 0bin uses to
generate the web site pages. The first list items have priotity on the later.</p>
<p>If you wish to use your own templates, add the directory containing them
at the begining of the list:</p>
at the beginning of the list:</p>
<div class="highlight-python"><div class="highlight"><pre><span class="kn">from</span> <span class="nn">zerobin.defauls_settings</span> <span class="kn">import</span> <span class="n">TEMPLATE_DIRS</span>
<span class="n">TEMPLATE_DIRS</span> <span class="o">=</span> <span class="p">(</span>
@ -247,8 +247,8 @@ port 80, but you wish that the process do not have access to protected files.</p
<p class="topless"><a href="theming.html"
title="previous chapter">Theming</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="../fr/intro.html"
title="next chapter">Introduction</a></p>
<p class="topless"><a href="zerobinpaste_tool.html"
title="next chapter">zerobinpaste command-line tool</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/en/options.txt"
@ -278,7 +278,7 @@ port 80, but you wish that the process do not have access to protected files.</p
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../fr/intro.html" title="Introduction"
<a href="zerobinpaste_tool.html" title="zerobinpaste command-line tool"
>next</a> |</li>
<li class="right" >
<a href="theming.html" title="Theming"

View File

@ -59,7 +59,7 @@ to the ones in zerobin/view, and add the path to the directory containing them
to the <a class="reference internal" href="options.html#template-dirs-en"><em>configuration file</em></a>.</p>
<p>You&#8217;ll also need to copy static files from zerobin/static to a new directory
where you can edit them. And you need to add this directory in the
<em class="xref std std-ref">configuration file</em> too.</p>
<a class="reference internal" href="options.html#static-root-en"><em>configuration file</em></a> too.</p>
<p>Of course, if you look for something simple, you can just edit all files in place/</p>
<p>But be careful, the javascript code is tightly coupled with HTML ID and classes,
and they are not very well organized for now.</p>

View File

@ -0,0 +1,193 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>zerobinpaste command-line tool &mdash; 0bin 0.1 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
<link rel="next" title="Introduction" href="../fr/intro.html" />
<link rel="prev" title="Options" href="options.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../fr/intro.html" title="Introduction"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="options.html" title="Options"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="zerobinpaste-command-line-tool">
<h1>zerobinpaste command-line tool<a class="headerlink" href="#zerobinpaste-command-line-tool" title="Permalink to this headline"></a></h1>
<p>zerobinpaste is a simple CLI tool (analogous to pastebinit or wgetpaste) to use
with files or shell redirection in terminal or simple scripts.</p>
<p>Example use-cases might look like:</p>
<div class="highlight-python"><pre>% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root</pre>
</div>
<p>Produced links can then be copy-pasted to some IRC channel or used in whatever
other conceivable way.</p>
<p>Tool does encryption by itself on the client machine and key (after hashmark) is
never sent to server or anywhere but the tool&#8217;s stdout stream (e.g. terminal).</p>
<p>Tool has to be built with <a class="reference external" href="http://nodejs.org/">node.js</a> separately (see below).</p>
<div class="section" id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>At least the pastebin site (main URL where you&#8217;d paste stuff with the browser)
has to be specified for the tool to use either via -u (&#8211;url) option (can be
simplified with shell alias - e.g. <tt class="docutils literal"><span class="pre">alias</span> <span class="pre">zp='zerobinpaste</span> <span class="pre">-u</span> <span class="pre">http://some.0bin.site</span></tt>)
or in the &#8220;~/.zerobinpasterc&#8221; configuration file (json format).</p>
<div class="line-block">
<div class="line">Non-option arguments are interpreted as files to upload/paste contents of.</div>
<div class="line">If no arguments are specified, data to paste will be read from stdin stream.</div>
</div>
<p>Simple configuration file may look like this:</p>
<blockquote>
<div>{&#8220;url&#8221;: &#8220;<a class="reference external" href="http://some.0bin.site">http://some.0bin.site</a>&#8220;}</div></blockquote>
<p>Any options (in the long form, e.g. &#8220;url&#8221; for &#8211;url above) that are allowed on
the command-line can be specified there.</p>
<p>Run the tool with -h or &#8211;help option to see full list of supported parameters.</p>
</div>
<div class="section" id="build-installation">
<h2>Build / Installation<a class="headerlink" href="#build-installation" title="Permalink to this headline"></a></h2>
<p>In essence:</p>
<blockquote>
<div>0bin% cd tools
0bin/tools% make
...
0bin/tools% cp zerobinpaste ~/bin # install to PATH</div></blockquote>
<p>&#8220;npm&#8221; binary (packaged and installed with node.js) is required to pull in build
dependencies, if necessary, and &#8220;node&#8221; binary is required for produced binary to
run.</p>
<p>Use &#8220;make&#8221; in &#8220;tools&#8221; path to produce non-minified runnable &#8220;zerobinpaste&#8221;
script there.</p>
<p><tt class="docutils literal"><span class="pre">make</span> <span class="pre">ugly</span></tt> command can be used instead of <tt class="docutils literal"><span class="pre">make</span></tt> to create &#8220;minified&#8221;
version (using/installing <a class="reference external" href="https://github.com/mishoo/UglifyJS">uglifyjs</a>, about 25% smaller in size).</p>
<p>Resulting &#8220;zerobinpaste&#8221; script requires only node.js (&#8220;node&#8221; binary) installed
to run and can be placed in any of the PATH dirs (e.g. &#8220;~/bin&#8221;,
&#8220;/usr/local/bin&#8221;) to be run just as &#8220;zerobinpaste&#8221;.</p>
</div>
<div class="section" id="why-node-js-and-not-python">
<h2>Why node.js and not python<a class="headerlink" href="#why-node-js-and-not-python" title="Permalink to this headline"></a></h2>
<p>Unfortunately, it&#8217;s fairly complex and unreliable to replicate non-trivial and
undocumented encryption protocol that <a class="reference external" href="http://crypto.stanford.edu/sjcl/">SJCL</a> convenience methods employ, and any
mistake in encryption is guaranteed to produce unreadable paste.</p>
<p>Current implementation uses same JavaScript code (and V8 node.js engine) that
browsers do, hence can be fairly simple and robust.</p>
<p>Future development plans include supporting configurable, less complex and more
widespread encryption schemas, allowing for simplier non-javascript client as
well.</p>
<p>See <a class="reference external" href="https://github.com/sametmax/0bin/pull/39">related pull request</a> for more details.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">zerobinpaste command-line tool</a><ul>
<li><a class="reference internal" href="#usage">Usage</a></li>
<li><a class="reference internal" href="#build-installation">Build / Installation</a></li>
<li><a class="reference internal" href="#why-node-js-and-not-python">Why node.js and not python</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="options.html"
title="previous chapter">Options</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="../fr/intro.html"
title="next chapter">Introduction</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/en/zerobinpaste_tool.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../fr/intro.html" title="Introduction"
>next</a> |</li>
<li class="right" >
<a href="options.html" title="Options"
>previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2012, Sam et Max.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
</div>
</body>
</html>

View File

@ -82,8 +82,8 @@ pas cette partie.</p>
<p>Les serveurs Web Python modernes fonctionnent tous de la même manière, en suivant
une norme d&#8217;interfaçage: WSGI.</p>
<p>C&#8217;est la solution la plus performante, et celle recommandée. Mais elle demande
l&#8217;installation du modle Apache mod_wsgi. Si vous ne savez pas comment faire,
ou si vous ne pouvez pas le faire (par exemple sur un hébergement mutualisé
l&#8217;installation du model Apache mod_wsgi. Si vous ne savez pas comment faire,
ou si vous ne pouvez pas le faire (par example sur un hébergement mutualisé
qui ne le propose pas), il vous faudra choisir l&#8217;installation CGI.</p>
<p>Premièrement, assurez-vous d&#8217;avoir mod_wsgi installé et chargé (en tant qu&#8217;admin):</p>
<div class="highlight-python"><pre>a2enmod wsgi</pre>

View File

@ -68,7 +68,7 @@ zerobin --host 0.0.0.0 --port 80 --compressed-static # en tant qu'admin</pre>
<ul>
<li><p class="first">Assurez-vous d&#8217;avoir Python 2.6 ou 2.7 (<cite>python &#8211;version</cite>)</p>
</li>
<li><p class="first">Télécharger le dernier zip du code source.</p>
<li><p class="first">Télécharger le dernier <a class="reference external" href="https://github.com/sametmax/0bin/zipball/master">zip du code source</a>.</p>
</li>
<li><p class="first">Décompressez tous les fichiers là où vous souhaitez mettre le site.</p>
</li>
@ -89,7 +89,7 @@ zerobin --host 0.0.0.0 --port 80 --compressed-static # en tant qu'admin</pre>
<p>0bin ne vient pas avec un moyen intégré pour le faire. Il y a plusieurs
solutions.</p>
<p><em>Pour un petit site:</em></p>
<p>Lancer simplement 0bin en processus shell d&#8217;arrière plan. Exemple sous GNU/Linux:</p>
<p>Lancer simplement 0bin en processus shell d&#8217;arrière plan. Example sous GNU/Linux:</p>
<div class="highlight-python"><pre>nohup python zerobin.py --host 0.0.0.0 --port 80 --compressed-static &amp;</pre>
</div>
<p>Ou dans un screen.</p>

View File

@ -27,7 +27,7 @@
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
<link rel="next" title="Installation la plus simple" href="easy_install.html" />
<link rel="prev" title="Options" href="../en/options.html" />
<link rel="prev" title="zerobinpaste command-line tool" href="../en/zerobinpaste_tool.html" />
</head>
<body>
<div class="related">
@ -40,7 +40,7 @@
<a href="easy_install.html" title="Installation la plus simple"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="../en/options.html" title="Options"
<a href="../en/zerobinpaste_tool.html" title="zerobinpaste command-line tool"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>
@ -160,8 +160,8 @@ rapport qualité/prix.</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="../en/options.html"
title="previous chapter">Options</a></p>
<p class="topless"><a href="../en/zerobinpaste_tool.html"
title="previous chapter">zerobinpaste command-line tool</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="easy_install.html"
title="next chapter">Installation la plus simple</a></p>
@ -197,7 +197,7 @@ rapport qualité/prix.</li>
<a href="easy_install.html" title="Installation la plus simple"
>next</a> |</li>
<li class="right" >
<a href="../en/options.html" title="Options"
<a href="../en/zerobinpaste_tool.html" title="zerobinpaste command-line tool"
>previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>

View File

@ -26,6 +26,7 @@
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
<link rel="next" title="Outil en ligne de commande zerobinpaste" href="zerobinpaste_tool.html" />
<link rel="prev" title="Personnaliser lapparence" href="theming.html" />
</head>
<body>
@ -35,6 +36,9 @@
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="zerobinpaste_tool.html" title="Outil en ligne de commande zerobinpaste"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="theming.html" title="Personnaliser lapparence"
accesskey="P">previous</a> |</li>
@ -249,6 +253,9 @@ est en haut de chaque page.</p>
<h4>Previous topic</h4>
<p class="topless"><a href="theming.html"
title="previous chapter">Personnaliser l&#8217;apparence</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="zerobinpaste_tool.html"
title="next chapter">Outil en ligne de commande zerobinpaste</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/fr/options.txt"
@ -277,6 +284,9 @@ est en haut de chaque page.</p>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="zerobinpaste_tool.html" title="Outil en ligne de commande zerobinpaste"
>next</a> |</li>
<li class="right" >
<a href="theming.html" title="Personnaliser lapparence"
>previous</a> |</li>

View File

@ -0,0 +1,180 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Outil en ligne de commande zerobinpaste &mdash; 0bin 0.1 documentation</title>
<link rel="stylesheet" href="../_static/default.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT: '../',
VERSION: '0.1',
COLLAPSE_INDEX: false,
FILE_SUFFIX: '.html',
HAS_SOURCE: true
};
</script>
<script type="text/javascript" src="../_static/jquery.js"></script>
<script type="text/javascript" src="../_static/underscore.js"></script>
<script type="text/javascript" src="../_static/doctools.js"></script>
<link rel="top" title="0bin 0.1 documentation" href="../index.html" />
<link rel="prev" title="Options" href="options.html" />
</head>
<body>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="options.html" title="Options"
accesskey="P">previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body">
<div class="section" id="outil-en-ligne-de-commande-zerobinpaste">
<h1>Outil en ligne de commande zerobinpaste<a class="headerlink" href="#outil-en-ligne-de-commande-zerobinpaste" title="Permalink to this headline"></a></h1>
<p>zerobinpaste est un simple outil CLI (similaire à pastebinit ou wgetpaste) à utiliser
avec des fichiers ou des redirection shell dans le terminal ou des scripts simples.</p>
<p>Exemple de cas d&#8217;utilisation:</p>
<div class="highlight-python"><pre>% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root</pre>
</div>
<p>Les liens produits peuvent être ensuite copier-coller sur un channel IRC
ou autre.</p>
<p>L&#8217;outil produit le chiffrement lui-même sur la machine et la clé (après le hash)
n&#8217;est jamais envoyée au serveur ou nul par ailleurs excepté la sortie standard
de l&#8217;outil (ex: le terminal).</p>
<p>L&#8217;outil doit être buildé avec <a class="reference external" href="http://nodejs.org/">node.js</a> séparément (voir plus bas).</p>
<div class="section" id="usage">
<h2>Usage<a class="headerlink" href="#usage" title="Permalink to this headline"></a></h2>
<p>Au minimum il faut préciser le site pastebin (l&#8217;url principal d&#8217;où on posterait
dans le navigateur) doit être spécifié à l&#8217;outil via l&#8217;option -u (&#8211;url) (on peut
le simplifier avec un alias shell - ex: <tt class="docutils literal"><span class="pre">alias</span> <span class="pre">zp='zerobinpaste</span> <span class="pre">-u</span> <span class="pre">http://some.0bin.site</span></tt>)
ou dans le fichier de configuration &#8220;~/.zerobinpasterc&#8221; (format json).</p>
<div class="line-block">
<div class="line">Les arguments positionels sont interprétés comme des fichiers à uploader et chiffrer.</div>
<div class="line">Si aucun argument n&#8217;est passé, le script tentera de lire stdin.</div>
</div>
<p>Le fichier de configuration le plus simple pourrait ressembler à celà:</p>
<blockquote>
<div>{&#8220;url&#8221;: &#8220;<a class="reference external" href="http://some.0bin.site">http://some.0bin.site</a>&#8220;}</div></blockquote>
<p>Toute option (dans sa forme longue, ex: &#8220;url pour &#8211;url) utilisable en ligne de commande
peut être spécifié ici.</p>
<p>Lancez l&#8217;outil avec -h ou &#8211;help pour voir la liste des paramètres supportés.</p>
</div>
<div class="section" id="build-installation">
<h2>Build / Installation<a class="headerlink" href="#build-installation" title="Permalink to this headline"></a></h2>
<p>En bref:</p>
<blockquote>
<div>0bin% cd tools
0bin/tools% make
...
0bin/tools% cp zerobinpaste ~/bin # install to PATH</div></blockquote>
<p>La commande &#8220;npm&#8221; (packagé and installé avec node.js) est requise pour télécharger
les dépendances indispensables à la production de l&#8217;éxécutable.</p>
<p>Utilisez &#8220;make&#8221; dans le dossier &#8220;tools&#8221; pour produire une version non-minifié&#8221; de &#8220;zerobinpaste&#8221;.</p>
<p>La commande <tt class="docutils literal"><span class="pre">make</span> <span class="pre">ugly</span></tt> peut être utilisé à la place de <tt class="docutils literal"><span class="pre">make</span></tt> pour créer une version &#8220;minified&#8221;
(requière l&#8217;installation de <a class="reference external" href="https://github.com/mishoo/UglifyJS">uglifyjs</a>, script produit environ 25% plus petit en taille).</p>
<p>Le script &#8220;zerobinpaste&#8221; ainsi produit seulement besoin de node.js (et la commande &#8220;node&#8221;) pour
s&#8217;éxcuter et peut être placé n&#8217;importe où dans le PATH système (ex : &#8220;~/bin&#8221;, &#8220;/usr/local/bin&#8221;)
afin d&#8217;être exécuté en tapant simplement &#8220;zerobinpaste&#8221;.</p>
</div>
<div class="section" id="pourquoi-node-js-et-pas-python">
<h2>Pourquoi node.js et pas python<a class="headerlink" href="#pourquoi-node-js-et-pas-python" title="Permalink to this headline"></a></h2>
<p>Malheureusement, il est assez difficile et peu fiable de répliquer un protocole
chiffrement non trivial et non documenté tel que celui de certaines méthodes
de <a class="reference external" href="http://crypto.stanford.edu/sjcl/">SJCL</a>, et la moindre erreur garantie de produire une paste illisible.</p>
<p>L&#8217;implémentation actuelle utilise le même code Javascript (via le moteur V8 de node.js)
que le navigateur, du coup il est simple et robuste.</p>
<p>Il est prévu de supporter plus tard un schéma de chiffrement plus configurable, moins
complexe et plus courant, permettant à des clients non-javascript de fonctioner également.</p>
<p>Voir le <a class="reference external" href="https://github.com/sametmax/0bin/pull/39">pull request concerné</a> pour plus de détails.</p>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="../index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Outil en ligne de commande zerobinpaste</a><ul>
<li><a class="reference internal" href="#usage">Usage</a></li>
<li><a class="reference internal" href="#build-installation">Build / Installation</a></li>
<li><a class="reference internal" href="#pourquoi-node-js-et-pas-python">Pourquoi node.js et pas python</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="options.html"
title="previous chapter">Options</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/fr/zerobinpaste_tool.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="../search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="options.html" title="Options"
>previous</a> |</li>
<li><a href="../index.html">0bin 0.1 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2012, Sam et Max.
Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
</div>
</body>
</html>

View File

@ -72,9 +72,10 @@
<li class="toctree-l1"><a class="reference internal" href="en/using_supervisor.html">Using supervisor</a></li>
<li class="toctree-l1"><a class="reference internal" href="en/theming.html">Theming</a></li>
<li class="toctree-l1"><a class="reference internal" href="en/options.html">Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="en/zerobinpaste_tool.html">zerobinpaste command-line tool</a></li>
</ul>
</div>
<p class="last"><a class="reference external" href="&lt;https://github.com/sametmax/0bin/issues&gt;">Report a bug</a></p>
<p class="last"><a class="reference external" href="https://github.com/sametmax/0bin/issues">Report a bug</a></p>
</td>
<td><div class="toctree-wrapper first compound">
<ul>
@ -85,6 +86,7 @@
<li class="toctree-l1"><a class="reference internal" href="fr/using_supervisor.html">Utiliser supervisor</a></li>
<li class="toctree-l1"><a class="reference internal" href="fr/theming.html">Personnaliser l&#8217;apparence</a></li>
<li class="toctree-l1"><a class="reference internal" href="fr/options.html">Options</a></li>
<li class="toctree-l1"><a class="reference internal" href="fr/zerobinpaste_tool.html">Outil en ligne de commande zerobinpaste</a></li>
</ul>
</div>
<p class="last"><a class="reference external" href="https://github.com/sametmax/0bin/issues">Signaler un bug</a></p>

View File

@ -30,6 +30,8 @@
<script type="text/javascript">
jQuery(function() { Search.loadIndex("searchindex.js"); });
</script>
<script type="text/javascript" id="searchindexloader"></script>
</head>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,96 @@
=======================================
Outil en ligne de commande zerobinpaste
=======================================
zerobinpaste est un simple outil CLI (similaire à pastebinit ou wgetpaste) à utiliser
avec des fichiers ou des redirection shell dans le terminal ou des scripts simples.
Exemple de cas d'utilisation::
% zerobinpaste README.rst
http://some.0bin.site/paste/0cc3d8a8...
% grep error /var/log/syslog | zerobinpaste
http://some.0bin.site/paste/81fd1324...
% zerobinpaste docs/en/*.rst
easy_install.rst http://some.0bin.site/paste/9adc576a...
apache_install.rst http://some.0bin.site/paste/01408cbd...
options.rst http://some.0bin.site/paste/921b2768...
...
% ps axlf | zerobinpaste | mail -s "Process tree on $(date)" root
Les liens produits peuvent être ensuite copier-coller sur un channel IRC
ou autre.
L'outil produit le chiffrement lui-même sur la machine et la clé (après le hash)
n'est jamais envoyée au serveur ou nul par ailleurs excepté la sortie standard
de l'outil (ex: le terminal).
L'outil doit être buildé avec `node.js`_ séparément (voir plus bas).
Usage
=====
Au minimum il faut préciser le site pastebin (l'url principal d'où on posterait
dans le navigateur) doit être spécifié à l'outil via l'option -u (--url) (on peut
le simplifier avec un alias shell - ex: ``alias zp='zerobinpaste -u http://some.0bin.site``)
ou dans le fichier de configuration "~/.zerobinpasterc" (format json).
| Les arguments positionels sont interprétés comme des fichiers à uploader et chiffrer.
| Si aucun argument n'est passé, le script tentera de lire stdin.
Le fichier de configuration le plus simple pourrait ressembler à celà:
{"url": "http://some.0bin.site"}
Toute option (dans sa forme longue, ex: "url pour --url) utilisable en ligne de commande
peut être spécifié ici.
Lancez l'outil avec -h ou --help pour voir la liste des paramètres supportés.
Build / Installation
====================
En bref:
0bin% cd tools
0bin/tools% make
...
0bin/tools% cp zerobinpaste ~/bin # install to PATH
La commande "npm" (packagé and installé avec node.js) est requise pour télécharger
les dépendances indispensables à la production de l'éxécutable.
Utilisez "make" dans le dossier "tools" pour produire une version non-minifié" de "zerobinpaste".
La commande ``make ugly`` peut être utilisé à la place de ``make`` pour créer une version "minified"
(requière l'installation de uglifyjs_, script produit environ 25% plus petit en taille).
Le script "zerobinpaste" ainsi produit seulement besoin de node.js (et la commande "node") pour
s'éxcuter et peut être placé n'importe où dans le PATH système (ex : "~/bin", "/usr/local/bin")
afin d'être exécuté en tapant simplement "zerobinpaste".
Pourquoi node.js et pas python
==============================
Malheureusement, il est assez difficile et peu fiable de répliquer un protocole
chiffrement non trivial et non documenté tel que celui de certaines méthodes
de SJCL_, et la moindre erreur garantie de produire une paste illisible.
L'implémentation actuelle utilise le même code Javascript (via le moteur V8 de node.js)
que le navigateur, du coup il est simple et robuste.
Il est prévu de supporter plus tard un schéma de chiffrement plus configurable, moins
complexe et plus courant, permettant à des clients non-javascript de fonctioner également.
Voir le `pull request concerné`_ pour plus de détails.
.. _node.js: http://nodejs.org/
.. _uglifyjs: https://github.com/mishoo/UglifyJS
.. _SJCL: http://crypto.stanford.edu/sjcl/
.. _pull request concerné: https://github.com/sametmax/0bin/pull/39