diff options
Diffstat (limited to 'pathod/templates/docs_lang.html')
-rw-r--r-- | pathod/templates/docs_lang.html | 196 |
1 files changed, 196 insertions, 0 deletions
diff --git a/pathod/templates/docs_lang.html b/pathod/templates/docs_lang.html new file mode 100644 index 00000000..a1d22aef --- /dev/null +++ b/pathod/templates/docs_lang.html @@ -0,0 +1,196 @@ +{% extends "docframe.html" %} {% block body %} +<div class="page-header"> + <h1> + Language Spec + <small>The mini-language at the heart of pathoc and pathod.</small> + </h1> +</div> + +<ul class="nav nav-tabs"> + <li class="active"><a href="#specifying_requests" data-toggle="tab">HTTP Requests</a></li> + <li><a href="#specifying_responses" data-toggle="tab">HTTP Responses</a></li> + <li><a href="#websockets" data-toggle="tab">Websocket Frames</a></li> +</ul> + +<div class="tab-content"> + <div class="tab-pane" id="specifying_responses"> + {% include "docs_lang_responses.html" %} + </div> + <div class="tab-pane active" id="specifying_requests"> + {% include "docs_lang_requests.html" %} + </div> + <div class="tab-pane" id="websockets"> + {% include "docs_lang_websockets.html" %} + </div> +</div> + +<section id="features"> + <div class="page-header"> + <h1>Features</h1> + </div> + + <a id="offsetspec"></a> + <h2>OFFSET</h2> + + <p> + Offsets are calculated relative to the base message, before any injections or other + transforms are applied. They have 3 flavors: + </p> + + <ul> + <li>An integer byte offset </li> + <li><b>r</b> for a random location</li> + <li><b>a</b> for the end of the message</li> + </ul> + + <a id="valuespec"></a> + <h2>VALUE</h2> + + <h3>Literals</h3> + + <p>Literal values are specified as a quoted strings: </p> + + <pre class="example">"foo"</pre> + + <p> + Either single or double quotes are accepted, and quotes can be escaped with backslashes + within the string: + </p> + + <pre class="example">'fo\'o'</pre> + + <p>Literal values can contain Python-style backslash escape sequences:</p> + + <pre class="example">'foo\r\nbar'</pre> + + <h3>Files</h3> + + <p> + You can load a value from a specified file path. To do so, you have to specify a + _staticdir_ option to pathod on the command-line, like so: + </p> + + <pre class="example">pathod -d ~/myassets</pre> + + <p> + All paths are relative paths under this directory. File loads are indicated by starting + the value specifier with the left angle bracket: + </p> + + <pre class="example"><my/path</pre> + + <p>The path value can also be a quoted string, with the same syntax as literals:</p> + + <pre class="example"><"my/path"</pre> + + + <h3>Generated values</h3> + + <p> + An @-symbol lead-in specifies that generated data should be used. There are two components + to a generator specification - a size, and a data type. By default pathod + assumes a data type of "bytes". + </p> + + <p>Here's a value specifier for generating 100 bytes: + + <pre class="example">@100</pre> + </p> + + <p> + You can use standard suffixes to indicate larger values. Here, for instance, is a + specifier for generating 100 megabytes: + </p> + + <pre class="example">@100m</pre> + + <p> + Data is generated and served efficiently - if you really want to send a terabyte + of data to a client, pathod can do it. The supported suffixes are: + </p> + + <table class="table table-bordered"> + <tbody> + <tr> + <td>b</td> + <td>1024**0 (bytes)</td> + </tr> + <tr> + <td>k</td> + <td>1024**1 (kilobytes)</td> + </tr> + <tr> + <td>m</td> + <td>1024**2 (megabytes)</td> + </tr> + <tr> + <td>g</td> + <td>1024**3 (gigabytes)</td> + </tr> + <tr> + <td>t</td> + <td>1024**4 (terabytes)</td> + </tr> + </tbody> + </table> + + <p> + Data types are separated from the size specification by a comma. This specification + generates 100mb of ASCII: + </p> + + <pre class="example">@100m,ascii</pre> + + <p>Supported data types are:</p> + + <table class="table table-bordered"> + <tbody> + <tr> + <td>ascii</td> + <td>All ASCII characters</td> + </tr> + <tr> + <td>ascii_letters</td> + <td>A-Za-z</td> + </tr> + <tr> + <td>ascii_lowercase</td> + <td>a-z</td> + </tr> + <tr> + <td>ascii_uppercase</td> + <td>A-Z</td> + </tr> + <tr> + <td>bytes</td> + <td>All 256 byte values</td> + </tr> + <tr> + <td>digits</td> + <td>0-9</td> + </tr> + <tr> + <td>hexdigits</td> + <td>0-f</td> + </tr> + <tr> + <td>octdigits</td> + <td>0-7</td> + </tr> + <tr> + <td>punctuation</td> + <td> + <pre>!"#$%&\'()*+,-./:; + <=>?@[\\]^_`{|}~</pre> + </td> + </tr> + <tr> + <td>whitespace</td> + <td> + <pre>\t\n\x0b\x0c\r and space</pre> + </td> + </tr> + </tbody> + </table> +</section> +{% endblock %} |