diff --git a/doc/.static/logilab.png b/doc/.static/logilab.png new file mode 100644 index 0000000000000000000000000000000000000000..2af1f2392ddeb991ada4133de6fd882022cbb4af GIT binary patch literal 4597 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 VMXPSY7X|?zl%}4>2jqjW{{ZAbx={cC diff --git a/doc/.static/sphinx-default.css b/doc/.static/sphinx-default.css new file mode 100644 index 0000000000000000000000000000000000000000..e8512b775e2de33550c901d1597aee8403107a36_ZG9jLy5zdGF0aWMvc3BoaW54LWRlZmF1bHQuY3Nz --- /dev/null +++ b/doc/.static/sphinx-default.css @@ -0,0 +1,860 @@ +/** + * Sphinx Doc Design + */ + +html, body { + background: white; +} + +body { + font-family: Verdana, sans-serif; + font-size: 100%; + background-color: white; + color: black; + margin: 0; + padding: 0; +} + +/* :::: LAYOUT :::: */ + +div.logilablogo { + padding: 10px 10px 10px 10px; + height:75; +} + + +div.document { + background-color: white; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: white; + padding: 0 20px 30px 20px; + border-left:solid; + border-left-color:#e2e2e2; + border-left-width:thin; +} + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.clearer { + clear: both; +} + +div.footer { + color: #ff4500; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ff4500; + text-decoration: underline; +} + +div.related { + background-color: #ff7700; + color: white; + width: 100%; + height: 30px; + line-height: 30px; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +div.related a { + color: white; + font-weight:bold; +} + +/* ::: TOC :::: */ + +div.sphinxsidebar { + border-style:solid; + border-color: white; +/* background-color:#e2e2e2;*/ + padding-bottom:5px; +} + +div.sphinxsidebar h3 { + font-family: 'Verdanda', sans-serif; + color: black; + font-size: 1.2em; + font-weight: normal; + margin: 0; + padding: 0; + font-weight:bold; + font-style:italic; +} + +div.sphinxsidebar h4 { + font-family: 'Verdana', sans-serif; + color: black; + font-size: 1.1em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; + font-weight:bold; + font-style:italic; +} + +div.sphinxsidebar p { + color: black; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + list-style: none; + color: black; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar a { + color: black; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #e2e2e2; + font-family: sans-serif; + font-size: 1em; + padding-bottom: 5px; +} + +/* :::: MODULE CLOUD :::: */ +div.modulecloud { + margin: -5px 10px 5px 10px; + padding: 10px; + line-height: 160%; + border: 1px solid #cbe7e5; + background-color: #f2fbfd; +} + +div.modulecloud a { + padding: 0 5px 0 5px; +} + +/* :::: SEARCH :::: */ +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* :::: COMMON FORM STYLES :::: */ + +div.actions { + padding: 5px 10px 5px 10px; + border-top: 1px solid #cbe7e5; + border-bottom: 1px solid #cbe7e5; + background-color: #e0f6f4; +} + +form dl { + color: #333; +} + +form dt { + clear: both; + float: left; + min-width: 110px; + margin-right: 10px; + padding-top: 2px; +} + +input#homepage { + display: none; +} + +div.error { + margin: 5px 20px 0 0; + padding: 5px; + border: 1px solid #d00; + font-weight: bold; +} + +/* :::: INLINE COMMENTS :::: */ + +div.inlinecomments { + position: absolute; + right: 20px; +} + +div.inlinecomments a.bubble { + display: block; + float: right; + background-image: url(style/comment.png); + background-repeat: no-repeat; + width: 25px; + height: 25px; + text-align: center; + padding-top: 3px; + font-size: 0.9em; + line-height: 14px; + font-weight: bold; + color: black; +} + +div.inlinecomments a.bubble span { + display: none; +} + +div.inlinecomments a.emptybubble { + background-image: url(style/nocomment.png); +} + +div.inlinecomments a.bubble:hover { + background-image: url(style/hovercomment.png); + text-decoration: none; + color: #3ca0a4; +} + +div.inlinecomments div.comments { + float: right; + margin: 25px 5px 0 0; + max-width: 50em; + min-width: 30em; + border: 1px solid #2eabb0; + background-color: #f2fbfd; + z-index: 150; +} + +div#comments { + border: 1px solid #2eabb0; + margin-top: 20px; +} + +div#comments div.nocomments { + padding: 10px; + font-weight: bold; +} + +div.inlinecomments div.comments h3, +div#comments h3 { + margin: 0; + padding: 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 3px; +} + +div.inlinecomments div.comments div.actions { + padding: 4px; + margin: 0; + border-top: none; +} + +div#comments div.comment { + margin: 10px; + border: 1px solid #2eabb0; +} + +div.inlinecomments div.comment h4, +div.commentwindow div.comment h4, +div#comments div.comment h4 { + margin: 10px 0 0 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 1px 4px 1px 4px; +} + +div#comments div.comment h4 { + margin: 0; +} + +div#comments div.comment h4 a { + color: #d5f4f4; +} + +div.inlinecomments div.comment div.text, +div.commentwindow div.comment div.text, +div#comments div.comment div.text { + margin: -5px 0 -5px 0; + padding: 0 10px 0 10px; +} + +div.inlinecomments div.comment div.meta, +div.commentwindow div.comment div.meta, +div#comments div.comment div.meta { + text-align: right; + padding: 2px 10px 2px 0; + font-size: 95%; + color: #538893; + border-top: 1px solid #cbe7e5; + background-color: #e0f6f4; +} + +div.commentwindow { + position: absolute; + width: 500px; + border: 1px solid #cbe7e5; + background-color: #f2fbfd; + display: none; + z-index: 130; +} + +div.commentwindow h3 { + margin: 0; + background-color: #2eabb0; + color: white; + border: none; + padding: 5px; + font-size: 1.5em; + cursor: pointer; +} + +div.commentwindow div.actions { + margin: 10px -10px 0 -10px; + padding: 4px 10px 4px 10px; + color: #538893; +} + +div.commentwindow div.actions input { + border: 1px solid #2eabb0; + background-color: white; + color: #135355; + cursor: pointer; +} + +div.commentwindow div.form { + padding: 0 10px 0 10px; +} + +div.commentwindow div.form input, +div.commentwindow div.form textarea { + border: 1px solid #3c9ea2; + background-color: white; + color: black; +} + +div.commentwindow div.error { + margin: 10px 5px 10px 5px; + background-color: #fbe5dc; + display: none; +} + +div.commentwindow div.form textarea { + width: 99%; +} + +div.commentwindow div.preview { + margin: 10px 0 10px 0; + background-color: #70d0d4; + padding: 0 1px 1px 25px; +} + +div.commentwindow div.preview h4 { + margin: 0 0 -5px -20px; + padding: 4px 0 0 4px; + color: white; + font-size: 1.3em; +} + +div.commentwindow div.preview div.comment { + background-color: #f2fbfd; +} + +div.commentwindow div.preview div.comment h4 { + margin: 10px 0 0 0!important; + padding: 1px 4px 1px 4px!important; + font-size: 1.2em; +} + +/* :::: SUGGEST CHANGES :::: */ +div#suggest-changes-box input, div#suggest-changes-box textarea { + border: 1px solid #ccc; + background-color: white; + color: black; +} + +div#suggest-changes-box textarea { + width: 99%; + height: 400px; +} + + +/* :::: PREVIEW :::: */ +div.preview { + background-image: url(style/preview.png); + padding: 0 20px 20px 20px; + margin-bottom: 30px; +} + + +/* :::: INDEX PAGE :::: */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* :::: INDEX STYLES :::: */ + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +form.pfform { + margin: 10px 0 20px 0; +} + +/* :::: GLOBAL STYLES :::: */ + +.docwarning { + background-color: #ffe4e4; + padding: 10px; + margin: 0 -20px 0 -20px; + border-bottom: 1px solid #f66; +} + +p.subhead { + font-weight: bold; + margin-top: 20px; +} + +a { + color: black; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Verdana', sans-serif; + background-color: white; + font-weight: bold; + color: black; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 120%; } +div.body h4 { font-size: 100%; } +div.body h5 { font-size: 90%; } +div.body h6 { font-size: 70%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +ul.fakelist { + list-style: none; + margin: 10px 0 10px 20px; + padding: 0; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +/* "Footnotes" heading */ +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +/* "Topics" */ + +div.topic { + background-color: #eee; + border: 1px solid #ccc; + padding: 0 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* Admonitions */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +div.admonition p { + display: inline; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +table.docutils { + border: 0; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 0; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +dl { + margin-bottom: 15px; + clear: both; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.refcount { + color: #060; +} + +dt:target, +.highlight { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +th { + text-align: left; + padding-right: 5px; +} + +pre { + padding: 5px; + background-color: #efc; + color: #333; + border: 1px solid #ac9; + border-left: none; + border-right: none; + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +.footnote:target { background-color: #ffa } + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +form.comment { + margin: 0; + padding: 10px 30px 10px 30px; + background-color: #eee; +} + +form.comment h3 { + background-color: #326591; + color: white; + margin: -10px -30px 10px -30px; + padding: 5px; + font-size: 1.4em; +} + +form.comment input, +form.comment textarea { + border: 1px solid #ccc; + padding: 2px; + font-family: sans-serif; + font-size: 100%; +} + +form.comment input[type="text"] { + width: 240px; +} + +form.comment textarea { + width: 100%; + height: 200px; + margin-bottom: 10px; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +/* :::: PRINT :::: */ +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0; + width : 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + div#comments div.new-comment-box, + #top-link { + display: none; + } +} diff --git a/doc/.templates/layout.html b/doc/.templates/layout.html new file mode 100644 index 0000000000000000000000000000000000000000..e8512b775e2de33550c901d1597aee8403107a36_ZG9jLy50ZW1wbGF0ZXMvbGF5b3V0Lmh0bWw= --- /dev/null +++ b/doc/.templates/layout.html @@ -0,0 +1,195 @@ +{%- block doctype -%} +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +{%- endblock %} +{%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %} +{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %} +{%- macro relbar %} + <div class="related"> + <h3>Navigation</h3> + <ul> + {%- for rellink in rellinks %} + <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}> + <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags }}" + accesskey="{{ rellink[2] }}">{{ rellink[3] }}</a> + {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li> + {%- endfor %} + {%- block rootrellink %} + <li><a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }}</li> + {%- endblock %} + {%- for parent in parents %} + <li><a href="{{ parent.link|e }}" accesskey="U">{{ parent.title }}</a>{{ reldelim1 }}</li> + {%- endfor %} + {%- block relbaritems %}{% endblock %} + </ul> + </div> +{%- endmacro %} +{%- macro sidebar %} + {%- if builder != 'htmlhelp' %} + <div class="sphinxsidebar"> + <div class="sphinxsidebarwrapper"> + {%- block sidebarlogo %} + {%- if logo %} + <p class="logo"><img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/></p> + {%- endif %} + {%- endblock %} + {%- block sidebartoc %} + {%- if display_toc %} + <h3>Table Of Contents</h3> + {{ toc }} + {%- endif %} + {%- endblock %} + {%- block sidebarrel %} + {%- if prev %} + <h4>Previous topic</h4> + <p class="topless"><a href="{{ prev.link|e }}" title="previous chapter">{{ prev.title }}</a></p> + {%- endif %} + {%- if next %} + <h4>Next topic</h4> + <p class="topless"><a href="{{ next.link|e }}" title="next chapter">{{ next.title }}</a></p> + {%- endif %} + {%- endblock %} + {%- if sourcename %} + <h3>This Page</h3> + <ul class="this-page-menu"> + {%- if builder == 'web' %} + <li><a href="#comments">Comments ({{ comments|length }} so far)</a></li> + <li><a href="{{ pathto('@edit/' + sourcename)|e }}">Suggest Change</a></li> + <li><a href="{{ pathto('@source/' + sourcename)|e }}">Show Source</a></li> + {%- elif builder == 'html' %} + <li><a href="{{ pathto('_sources/' + sourcename, true)|e }}">Show Source</a></li> + {%- endif %} + </ul> + {%- endif %} + {%- if customsidebar %} + {{ rendertemplate(customsidebar) }} + {%- endif %} + {%- block sidebarsearch %} + {%- if pagename != "search" %} + <h3>{{ builder == 'web' and 'Keyword' or 'Quick' }} search</h3> + <form class="search" action="{{ pathto('search') }}" method="get"> + <input type="text" name="q" size="18" /> <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + {%- if builder == 'web' %} + <p style="font-size: 90%">Enter a module, class or function name.</p> + {%- endif %} + {%- endif %} + {%- endblock %} + </div> + </div> + {%- endif %} +{%- endmacro -%} + +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + {%- if builder != 'htmlhelp' %} + {%- set titlesuffix = " — " + docstitle %} + {%- endif %} + <title>{{ title|striptags }}{{ titlesuffix }}</title> + {%- if builder == 'web' %} + <link rel="stylesheet" href="{{ pathto('index') }}?do=stylesheet{% + if in_admin_panel %}&admin=yes{% endif %}" type="text/css" /> + {%- for link, type, title in page_links %} + <link rel="alternate" type="{{ type|e(true) }}" title="{{ title|e(true) }}" href="{{ link|e(true) }}" /> + {%- endfor %} + {%- else %} + <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" /> + <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" /> + {%- endif %} + {%- if builder != 'htmlhelp' %} + <script type="text/javascript"> + var DOCUMENTATION_OPTIONS = { + URL_ROOT: '{{ pathto("", 1) }}', + VERSION: '{{ release }}', + COLLAPSE_MODINDEX: false, + FILE_SUFFIX: '{{ file_suffix }}' + }; + </script> + <script type="text/javascript" src="{{ pathto('_static/jquery.js', 1) }}"></script> + <script type="text/javascript" src="{{ pathto('_static/interface.js', 1) }}"></script> + <script type="text/javascript" src="{{ pathto('_static/doctools.js', 1) }}"></script> + {%- if use_opensearch %} + <link rel="search" type="application/opensearchdescription+xml" + title="Search within {{ docstitle }}" + href="{{ pathto('_static/opensearch.xml', 1) }}"/> + {%- endif %} + {%- if favicon %} + <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/> + {%- endif %} + {%- endif %} +{%- block rellinks %} + {%- if hasdoc('about') %} + <link rel="author" title="About these documents" href="{{ pathto('about') }}" /> + {%- endif %} + <link rel="contents" title="Global table of contents" href="{{ pathto('contents') }}" /> + <link rel="index" title="Global index" href="{{ pathto('genindex') }}" /> + <link rel="search" title="Search" href="{{ pathto('search') }}" /> + {%- if hasdoc('copyright') %} + <link rel="copyright" title="Copyright" href="{{ pathto('copyright') }}" /> + {%- endif %} + <link rel="top" title="{{ docstitle }}" href="{{ pathto('index') }}" /> + {%- if parents %} + <link rel="up" title="{{ parents[-1].title|striptags }}" href="{{ parents[-1].link|e }}" /> + {%- endif %} + {%- if next %} + <link rel="next" title="{{ next.title|striptags }}" href="{{ next.link|e }}" /> + {%- endif %} + {%- if prev %} + <link rel="prev" title="{{ prev.title|striptags }}" href="{{ prev.link|e }}" /> + {%- endif %} +{%- endblock %} +{%- block extrahead %}{% endblock %} + </head> + <body> + +{% block logilablogo %} +<div class="logilablogo"> + <a class="logogo" href="http://www.logilab.org"><img border="0" src="{{ pathto('_static/logilab.png', 1) }}"/></a> + </div> +{% endblock %} + +{%- block relbar1 %}{{ relbar() }}{% endblock %} + +{%- block sidebar1 %}{# possible location for sidebar #}{% endblock %} + +{%- block document %} + <div class="document"> + <div class="documentwrapper"> + {%- if builder != 'htmlhelp' %} + <div class="bodywrapper"> + {%- endif %} + <div class="body"> + {% block body %}{% endblock %} + </div> + {%- if builder != 'htmlhelp' %} + </div> + {%- endif %} + </div> +{%- endblock %} + +{%- block sidebar2 %}{{ sidebar() }}{% endblock %} + <div class="clearer"></div> + </div> + +{%- block relbar2 %}{{ relbar() }}{% endblock %} + +{%- block footer %} + <div class="footer"> + {%- if hasdoc('copyright') %} + © <a href="{{ pathto('copyright') }}">Copyright</a> {{ copyright }}. + {%- else %} + © Copyright {{ copyright }}. + {%- endif %} + {%- if last_updated %} + Last updated on {{ last_updated }}. + {%- endif %} + {%- if show_sphinx %} + Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>. + {%- endif %} + </div> +{%- endblock %} + </body> +</html> diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..e8512b775e2de33550c901d1597aee8403107a36_ZG9jL01ha2VmaWxl --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,70 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . + +.PHONY: help clean html web pickle htmlhelp latex changes linkcheck + +help: + @echo "Please use \`make <target>' where <target> is one of" + @echo " html to make standalone HTML files" + @echo " pickle to make pickle files (usable by e.g. sphinx-web)" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview over all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + +clean: + -rm -rf build/* + +html: + mkdir -p build/html build/doctrees + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) build/html + @echo + @echo "Build finished. The HTML pages are in build/html." + +pickle: + mkdir -p build/pickle build/doctrees + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) build/pickle + @echo + @echo "Build finished; now you can process the pickle files or run" + @echo " sphinx-web build/pickle" + @echo "to start the sphinx-web server." + +web: pickle + +htmlhelp: + mkdir -p build/htmlhelp build/doctrees + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) build/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in build/htmlhelp." + +latex: + mkdir -p build/latex build/doctrees + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) build/latex + @echo + @echo "Build finished; the LaTeX files are in build/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + mkdir -p build/changes build/doctrees + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) build/changes + @echo + @echo "The overview file is in build/changes." + +linkcheck: + mkdir -p build/linkcheck build/doctrees + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) build/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in build/linkcheck/output.txt." diff --git a/doc/conf.py b/doc/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..e8512b775e2de33550c901d1597aee8403107a36_ZG9jL2NvbmYucHk= --- /dev/null +++ b/doc/conf.py @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- +# +# RQL documentation build configuration file, created by +# sphinx-quickstart on Tue Nov 4 07:54:06 2008. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# The contents of this file are pickled, so don't put values in the namespace +# that aren't pickleable (module imports are okay, they're removed automatically). +# +# All configuration values have a default value; values that are commented out +# serve to show the default value. + +import sys, os + +# If your extensions are in another directory, add it here. If the directory +# is relative to the documentation root, use os.path.abspath to make it +# absolute, like shown here. +#sys.path.append(os.path.abspath('some/directory')) + +# General configuration +# --------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ['sphinx.ext.autodoc'] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['.templates'] + +# The suffix of source filenames. +source_suffix = '.txt' + +# The master toctree document. +master_doc = 'index' + +# General substitutions. +project = 'RQL' +copyright = '2008, Sylvain Thenault' + +# The default replacements for |version| and |release|, also used in various +# other places throughout the built documents. +# +# The short X.Y version. +version = '0.20.2' +# The full version, including alpha/beta/rc tags. +release = '0.20.2' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directories, that shouldn't be searched +# for source files. +#exclude_dirs = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + + +# Options for HTML output +# ----------------------- + +# The style sheet to use for HTML and HTML Help pages. A file of that name +# must exist either in Sphinx' static/ path, or in one of the custom paths +# given in html_static_path. +html_style = 'sphinx-default.css' + +# The name for this set of Sphinx documents. If None, it defaults to +# "<project> v<release> documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (within the static path) to place at the top of +# the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['.static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, the reST sources are included in the HTML build as _sources/<name>. +#html_copy_source = True + +# If true, an OpenSearch description file will be output, and all pages will +# contain a <link> tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'RQLdoc' + + +# Options for LaTeX output +# ------------------------ + +# The paper size ('letter' or 'a4'). +#latex_paper_size = 'letter' + +# The font size ('10pt', '11pt' or '12pt'). +#latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, document class [howto/manual]). +latex_documents = [ + ('index', 'RQL.tex', 'RQL Documentation', + 'Sylvain Thenault', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True diff --git a/doc/index.txt b/doc/index.txt new file mode 100644 index 0000000000000000000000000000000000000000..e8512b775e2de33550c901d1597aee8403107a36_ZG9jL2luZGV4LnR4dA== --- /dev/null +++ b/doc/index.txt @@ -0,0 +1,23 @@ +.. RQL documentation master file, created by sphinx-quickstart on Tue Nov 4 07:54:06 2008. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Documentation technique de RQL +============================== + +Contents: + +.. toctree:: + :maxdepth: 2 + + specifications_fr.txt + canonisation.txt + tutoriel_fr.txt + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` +